subl命令不存在是因为Sublime Text默认不安装命令行工具;macOS需通过菜单栏Install Command Line Tool安装,Linux需手动建软链接,Windows需勾选Add to PATH或手动配置,验证须新开终端运行which subl及subl --version。

subl 命令不存在?先确认 CLI 工具是否真装上了
输 subl --version 报 command not found,不是 PATH 没配对,而是 Sublime Text 根本没安装命令行工具——它默认不随 GUI 安装包一起部署。
macOS 用户最稳路径:打开 Sublime Text → 菜单栏 Sublime Text → Install Command Line Tool,系统自动把 subl 放进 /usr/local/bin/subl,连空格路径和后续更新都自动适配;手动建软链接(比如 sudo ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl)容易漏引号或权限,反而更难排查。
Linux(如 Ubuntu)常见路径是 /opt/sublime_text/subl,但仅 tarball 版提供该文件;Snap/Flatpak 安装的版本默认不带 subl。
Windows 安装时务必勾选 Add to PATH,否则就得手动把 C:\Program Files\Sublime Text\ 加进系统环境变量,再开新终端验证。
Terminal 插件怎么配 cwd 才能打开到当前文件目录
按 Ctrl+` 打开的是 Python 控制台,不是终端——它不读 .zshrc、不继承 PATH、也不能输 git status。真要唤起系统终端,得用 Terminal 或 Terminus 插件,并且必须显式配置工作目录。
在插件快捷键配置里(如 Preferences → Key Bindings),关键参数是 cwd:
-
"cwd": "${file_path:${folder}}"表示:有打开文件时用其所在路径;没文件但开了项目时 fallback 到项目根目录 - 千万别省略
cwd,否则终端大概率打开在用户主目录或 Sublime 安装目录,跟你编辑的文件完全无关 - 避免写死路径(如
"cwd": "/home/user/project"),否则跨项目失效
Terminus 启动后找不到 git/node/python?不是插件问题,是 shell 没加载环境
Terminus 调用的是你系统已有的 shell(bash、zsh、powershell.exe),但它默认以非 login 模式启动,不会执行 ~/.zshrc 或 ~/.bashrc,你手动加进 PATH 的命令全失效。
解决方法分平台:
- macOS/Linux:在 Terminus 设置里把
shell_cmd改成["zsh", "-l", "-c", "exec $SHELL"],其中-l强制 login 模式,确保加载配置 - Windows:PowerShell 默认支持 profile,但需确认
$PROFILE文件存在且含$env:PATH += ";C:\tools"类追加逻辑 - 终极兜底:所有构建系统或插件配置中,涉及命令路径的地方(如
"cmd": ["node", "--version"])全部改用绝对路径,比如"/usr/local/bin/node"
build system 里怎么写 JSON 才能正确调用终端命令
Build system 不是“运行终端”,而是让 Sublime 调用 shell 执行一条命令——适合编译、格式化、一键脚本等单次任务,不适合交互式操作。
核心字段必须明确:
-
"cmd":数组形式,如["sh", "-c", "git status && echo 'done'"];不要写"cmd": "git status"(字符串不被解析) -
"shell": true:必须设为true,否则&&、|等 shell 特性失效 -
"working_dir": "${file_path}":确保命令在当前文件目录执行,而不是 Sublime 自身安装路径 -
"encoding": "utf-8"(macOS/Linux)或"encoding": "cp936"(中文 Windows):避免中文输出乱码
一个典型例子(在当前目录运行 npm script):
{
"cmd": ["npm", "run", "dev"],
"shell": true,
"working_dir": "${file_path}",
"encoding": "utf-8"
}
保存为 npm_dev.sublime-build,之后按 Ctrl+B 即可触发——它不会弹窗,结果直接输出在 Sublime 底部面板。
真正容易被忽略的是:build system 和插件调用终端是两套机制,不能混用;前者无交互、后者有 Shell 环境,但后者依赖 shell 初始化逻辑是否完整。别指望 build system 里写 bash 就能打开交互终端——它只执行完就退出。











