如何设置Sublime Text进行Swift编程及编写代码指导?
- 内容介绍
- 文章标签
- 相关推荐
本文共计837个文字,预计阅读时间需要4分钟。
GUI 启动的 Sublime 无法读取您的 `~/.zshrc` 或 `~/.bash_profile` 文件,因此即使用 `swift --version` 命令也无法运行。Sublime 也找不到该命令。
- 先在终端执行
which swift,拿到绝对路径(常见如:/usr/bin/swift、/opt/homebrew/bin/swift、/Library/Developer/Toolchains/swift-5.9-RELEASE.xctoolchain/usr/bin/swift) - 构建系统里别写
"cmd": ["swift", "$file"],必须写死路径:"cmd": ["/opt/homebrew/bin/swift", "$file"] - macOS 上如果装了 Xcode 但没点过“同意许可协议”,
swiftc会静默失败——得先在终端跑一次xcodebuild -runFirstLaunch
怎么写一个真正能跑的 Swift.sublime-build
单文件脚本场景下,最简且稳定的方式是直接解释执行(要求 Swift ≥ 5.9):
{ "cmd": ["/opt/homebrew/bin/swift", "$file"], "file_regex": "^([^:]*):([0-9]+):([0-9]+): (?:error|warning|note): (.*)$", "selector": "source.swift", "shell": true, "working_dir": "$file_path" }
-
"shell": true必须设为true,否则$file这类变量不展开 -
file_regex必须匹配 Swift CLI 的错误格式,否则双击错误行不会跳转 - 若用
swiftc编译再运行,得显式加权限:["bash", "-c", "swiftc '$file' -o '${file_path}/${file_base_name}' && chmod +x '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"],否则 macOS/Linux 报permission denied
Build System 该用 swift 还是 swiftc
二者用途完全不同,选错就白配:
-
swift $file:解释执行,适合快速验证语法、写算法题、CLI 小脚本;不生成二进制,无需手动清理 -
swiftc $file -o xxx:编译为原生可执行文件,适合需要链接 C 库、或后续要分发二进制的场景;但每次编译都生成新文件,得自己处理命名和权限 - 别在单文件里硬套
swift build——那属于 Swift Package Manager,只认含Package.swift的项目根目录
语法高亮和补全到底能到哪一步
Sublime 自带的 Swift.sublime-syntax 足够支撑基础高亮;补全只能靠单词联想(Ctrl+Space)和 snippet,没有类型推导、无参数提示、不支持 go to definition。
- 安装社区
Swift插件(作者 sbrickey)能增强括号匹配和缩进,但不提供语义级功能 - 想接入
sourcekit-lsp?Sublime 的 LSP 插件(sublimelsp)对 Swift 支持极差:hover 延迟高、跳转常返回No definition、保存频繁触发断连 - 真需要完整语言服务,请用 VS Code +
Swift for VS Code扩展;Sublime 就老老实实当个编辑器用
working_dir 和 shell 开关——漏掉任一,$file_path 就是空的,或者变量根本不展开。配完记得在终端里先确认 swift --version 可用,再打开 Sublime 测试,别在编辑器里反复猜路径。本文共计837个文字,预计阅读时间需要4分钟。
GUI 启动的 Sublime 无法读取您的 `~/.zshrc` 或 `~/.bash_profile` 文件,因此即使用 `swift --version` 命令也无法运行。Sublime 也找不到该命令。
- 先在终端执行
which swift,拿到绝对路径(常见如:/usr/bin/swift、/opt/homebrew/bin/swift、/Library/Developer/Toolchains/swift-5.9-RELEASE.xctoolchain/usr/bin/swift) - 构建系统里别写
"cmd": ["swift", "$file"],必须写死路径:"cmd": ["/opt/homebrew/bin/swift", "$file"] - macOS 上如果装了 Xcode 但没点过“同意许可协议”,
swiftc会静默失败——得先在终端跑一次xcodebuild -runFirstLaunch
怎么写一个真正能跑的 Swift.sublime-build
单文件脚本场景下,最简且稳定的方式是直接解释执行(要求 Swift ≥ 5.9):
{ "cmd": ["/opt/homebrew/bin/swift", "$file"], "file_regex": "^([^:]*):([0-9]+):([0-9]+): (?:error|warning|note): (.*)$", "selector": "source.swift", "shell": true, "working_dir": "$file_path" }
-
"shell": true必须设为true,否则$file这类变量不展开 -
file_regex必须匹配 Swift CLI 的错误格式,否则双击错误行不会跳转 - 若用
swiftc编译再运行,得显式加权限:["bash", "-c", "swiftc '$file' -o '${file_path}/${file_base_name}' && chmod +x '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"],否则 macOS/Linux 报permission denied
Build System 该用 swift 还是 swiftc
二者用途完全不同,选错就白配:
-
swift $file:解释执行,适合快速验证语法、写算法题、CLI 小脚本;不生成二进制,无需手动清理 -
swiftc $file -o xxx:编译为原生可执行文件,适合需要链接 C 库、或后续要分发二进制的场景;但每次编译都生成新文件,得自己处理命名和权限 - 别在单文件里硬套
swift build——那属于 Swift Package Manager,只认含Package.swift的项目根目录
语法高亮和补全到底能到哪一步
Sublime 自带的 Swift.sublime-syntax 足够支撑基础高亮;补全只能靠单词联想(Ctrl+Space)和 snippet,没有类型推导、无参数提示、不支持 go to definition。
- 安装社区
Swift插件(作者 sbrickey)能增强括号匹配和缩进,但不提供语义级功能 - 想接入
sourcekit-lsp?Sublime 的 LSP 插件(sublimelsp)对 Swift 支持极差:hover 延迟高、跳转常返回No definition、保存频繁触发断连 - 真需要完整语言服务,请用 VS Code +
Swift for VS Code扩展;Sublime 就老老实实当个编辑器用
working_dir 和 shell 开关——漏掉任一,$file_path 就是空的,或者变量根本不展开。配完记得在终端里先确认 swift --version 可用,再打开 Sublime 测试,别在编辑器里反复猜路径。
