sublime text 无法直接运行 swift,仅能通过调用系统 swift/swiftc 命令实现单文件解释或编译执行;需使用绝对路径、启用 "shell": true、正确配置 file_regex 和 working_dir,并确保已安装 swift 语法包且文件编码为 utf-8。

Sublime Text 本身不能运行 Swift,所谓“快速运行”只是调用系统已安装的 swift 或 swiftc 命令——前提是它真在终端里能跑通,且路径被 GUI 进程识别到。
为什么 Ctrl+B 总报 command not found: swift
GUI 启动的 Sublime 不加载你的 shell 配置(比如 ~/.zshrc),即使终端里 swift --version 成功,Sublime 也大概率找不到命令。别信 which swift 的输出,它在 Sublime 进程里可能为空。
- 必须用绝对路径:
/usr/bin/swift(macOS 自带)、/Library/Developer/Toolchains/swift-5.9-RELEASE.xctoolchain/usr/bin/swift(Swift.org 官方包)或/opt/homebrew/bin/swift(Homebrew 安装) - 检查 Xcode 许可协议是否已接受:没运行过
xcodebuild -runFirstLaunch,swiftc会静默失败 -
"shell": true必须设为true,否则$file、$file_path等变量不会展开
怎么写一个真正能跑的 Swift Build System(单文件场景)
只适用于写算法、验证语法、跑 CLI 工具——不是 App,不是 Package,不是 SwiftUI 项目。
- 最简解释执行(推荐 Swift 5.9+):
{ "cmd": ["swift", "$file"], "file_regex": "^([^:]*):([0-9]+):([0-9]+): (?:error|warning|note): (.*)$", "selector": "source.swift", "shell": true, "working_dir": "$file_path" } - 若需编译再运行(比如链接 C 库),显式处理权限:
{ "cmd": ["bash", "-c", "swiftc '$file' -o '${file_path}/${file_base_name}' && chmod +x '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"], "selector": "source.swift", "shell": true, "working_dir": "$file_path" }缺chmod +x会导致permission denied -
file_regex必须匹配 Swift CLI 错误格式,否则双击错误行无法跳转
右下角不显示 Swift?高亮根本没生效
不是插件没装,而是三个低级但致命的问题卡住了:
- 没装官方 Swift 语法包(作者:supermarin),通过 Command Palette →
Package Control: Install Package搜索安装 - 打开 .swift 文件后,右下角状态栏没自动切到 Swift —— 手动点击状态栏语言名 → 选
Swift - 文件编码不是 UTF-8(尤其 Windows 下保存时用了 BOM),会导致语法解析失败;用 Sublime →
File → Save with Encoding → UTF-8
真正的难点不在写 JSON,而在确认 swift 命令在 Sublime 的执行上下文里确实可用——这比配置本身更花时间,也最容易被忽略。











