sublime Text通过自定义构建系统指定默认shell,需创建或修改.sublime-build文件,使用shell_cmd或cmd调用目标shell(如zsh、bash),并通过Tools→Build System选择该配置,实现命令在指定shell中执行。
sublime text 本身不直接执行 shell 命令,它通过构建系统(Build System)调用操作系统的终端或 shell 来运行命令。要指定默认的 shell 来执行命令,你需要修改或创建自定义的构建系统配置,让其调用你想要的 shell(如 bash、zsh、fish 等)。
1. 查看当前构建系统
Sublime 使用 .sublime-build 文件定义构建系统。这些文件位于:
- 菜单栏 → Tools → Build System → New Build System…
- 保存路径通常是:Packages/User/ 目录下
2. 创建自定义构建系统指定默认 shell
以使用 zsh 为例(也可替换为 bash、fish 等):
- 打开 Sublime Text
- 选择 Tools → Build System → New Build System…
- 将以下内容粘贴进去:
{ “shell_cmd”: “zsh -c “cd ‘$file_path’ && $file_name””, “working_dir”: “$file_path”, “selector”: “source.shell”, “file_regex”: “^(…*?):([0-9]+):([0-9]+): (.*)$” }
说明:
- shell_cmd:指定用 zsh 执行命令,
$file_path
和$file_name
是 Sublime 变量 - working_dir:设置工作目录为文件所在目录
- zsh -c 表示执行后续命令字符串
- 你可以把 zsh 换成 /bin/bash 或 /usr/bin/fish 等
保存为:MyZSH.sublime-build(名称可自定义)
3. 选择并使用该构建系统
保存后:
- 回到菜单 Tools → Build System
- 选择你刚创建的 MyZSH
- 按下 Ctrl+B 就会用 zsh 执行当前脚本
4. 如果是运行 python、node 等命令,想统一走某个 shell
有些插件或构建系统默认用系统 shell。你可以通过包装方式让它们走指定 shell:
{ “cmd”: [“zsh”, “-c”, “python3 ‘$file’”], “working_dir”: “$file_path”, “selector”: “source.python” }
这样即使运行 Python 脚本,也会先启动 zsh 再执行命令,环境变量和别名都能继承。
5. 设置全局默认 shell(间接方式)
Sublime 没有“全局设置默认 shell”的选项,但你可以:
- 修改系统默认 shell:
chsh -s /bin/zsh
- 确保所有 .sublime-build 文件都使用
shell_cmd
或显式调用目标 shell - 在 User Settings 中设置环境变量(Preferences → Settings):
{ “env”: { “SHELL”: “/bin/zsh” } }
某些插件会读取此变量,但不是所有构建系统都支持。
总结: Sublime 不提供直接设置“默认终端”的图形化选项,但通过自定义 .sublime-build 文件,可以完全控制使用哪个 shell 执行命令。关键是用 shell_cmd 或 cmd 显式调用你想要的 shell 解释器。 基本上就这些。