Sublime Text 默认无终端,Ctrl+`仅打开Python控制台;需安装Terminus插件并手动配置shell路径、default_config及cwd参数,才能实现嵌入式系统终端。

Sublime Text 本身没有“默认终端工具”这个设置项,它默认压根不带终端——Ctrl+` 打开的是 Python 控制台,不是 shell。真要跑 git、ls、python main.py,必须装 Terminus 插件并手动指定 shell 路径。
确认你当前用的到底是不是系统终端
按下 Ctrl+` 后如果看到 >>> 提示符,输入 print("test") 能执行,但输 ls 报错 NameError: name 'ls' is not defined,那就 100% 还在 Python 控制台里。这不是 bug,是 Sublime 的设计:Python 控制台和系统 shell 完全隔离,环境变量、.zshrc、虚拟环境统统不加载。
安装 Terminus 并配置默认 shell
只有 Terminus 能提供真正可交互的嵌入式终端(支持分屏、会话复用、256 色等)。安装后,它默认会尝试调用系统默认 shell,但经常不准,尤其 macOS 上可能 fallback 到 bash 而不是你配的 zsh,Windows 上可能找不到 PowerShell。
- 通过
Package Control: Install Package命令面板安装Terminus(别手动 clone,容易版本错乱) - 打开
Preferences → Package Settings → Terminus → Settings,在用户设置里加这行:
{
"shell_configs": [
{
"name": "zsh",
"cmd": ["zsh", "-i", "-l"],
"env": {}
}
],
"default_config": "zsh"
}
Windows 用户把 "cmd" 改成 ["powershell.exe", "-NoExit", "-Command"];若用 Git Bash,路径类似 ["C:\Program Files\Git\bin\bash.exe", "--login", "-i"]。注意路径中反斜杠要双写,或改用正斜杠。
让终端自动进当前文件目录,而不是项目根目录
默认 Terminus 在项目根目录启动,但多数时候你想在当前编辑的文件所在目录运行命令(比如 python manage.py runserver)。靠键绑定传参最稳:
- 打开
Preferences → Key Bindings(右侧用户文件) - 加一条绑定,例如用
Ctrl+Alt+T:
[{
"keys": ["ctrl+alt+t"],
"command": "terminus_open",
"args": {
"cwd": "${file_path:${folder}}"
}
}]
${file_path:${folder}} 是 Sublime 的变量语法:有当前文件就取其路径,没文件就退到项目根目录。别用 ${file},它包含文件名,会导致 cd 失败。
为什么改了 shell 配置还是不生效?常见卡点
改完 Terminus.sublime-settings 却发现新开终端还是 bash 或报 command not found,大概率是这几个地方漏了:
-
default_config值必须和shell_configs里某个name完全一致(大小写敏感),比如写成"Default"就无效 - macOS 上
zsh若由 Homebrew 安装,路径可能是/opt/homebrew/bin/zsh,得写进cmd数组 - Windows 上 PowerShell 要加
-NoExit,否则窗口一闪就关;路径含空格时,整个cmd字符串必须用英文双引号包裹 - 改完设置必须重启 Sublime,
Terminus不热重载配置
最麻烦的一点:Terminal 面板一旦打开,它的 shell 进程就固定了,后续改配置只影响新打开的终端。别指望已开的窗口自动切换 shell。


















