Sublime Text 本身无内置终端,Ctrl+`打开的是仅执行Python代码的控制台;真正在编辑器内运行git、python等shell命令,必须安装Terminus插件——它通过Package Control安装、需手动配置快捷键与cwd参数,并支持嵌入式交互式终端。

Sublime Text 本身没有内置终端,Ctrl+` 打开的是 Python 控制台,不是 shell——它不认 git、不加载 .bashrc、也不能跑 python main.py。真集成系统终端,唯一靠谱方案是装 Terminus,其他叫 “Terminal” 的插件在 ST4 上基本全废。
Terminus 怎么装?别试手动或旧包
必须用 Package Control 安装,且只认 Terminus 这个名字(不是 Terminal、SublimeTerminal、Terminus-fork)。流程固定四步:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS)呼出命令面板 - 输入
Package Control: Install Package并回车 - 等列表加载完,搜
Terminus,点第一个结果 - 装完不用重启,但若控制台里执行
terminus_open报ImportError: No module named terminus,说明下载中断,删掉Packages/Terminus/目录重装
如果命令面板里压根没有 Install Package 选项,说明 Package Control 没装好——别用旧安装脚本,去官网拿带 hashlib.sha256 校验的新版。
终端一打开就闪退或空白?先查 shell 本身
Terminus 不自带 shell,它只是调用你系统里已有的 bash、zsh、pwsh 或 cmd.exe。报 Unable to find shell 或卡死,90% 是 shell 启动失败,不是插件问题。
- Windows 用户用 Git Bash?得进
Preferences → Package Settings → Terminus → Settings手动加shell_configs,否则默认只认cmd和powershell - macOS 用户用
zsh却打不开?先运行echo $PATH | grep zsh确认/bin/zsh在路径里;再检查~/.zshrc有没有阻塞语句(比如超时的curl) - Linux 下报
exec: "sh": executable file not found in $PATH?直接查echo $PATH,大概率是环境变量被清空或覆盖
验证方法:在快捷键配置里写 {"cmd": ["/bin/bash", "--norc", "--noprofile"]},能跑通,说明问题出在你的 shell 配置文件里。
快捷键唤出终端,怎么默认在当前文件目录?
直接绑 {"command": "terminus_open"},终端大概率开在 Sublime 启动时的工作目录(通常是家目录),而不是你正在编辑的文件位置。
正确做法是在快捷键配置中传 cwd 参数:
[{"keys": ["ctrl+alt+t"], "command": "terminus_open", "args": {"cwd": "${file_path:${folder}}"}}]
这个表达式意思是:有文件打开时取其所在目录(${file_path}),没文件时退回到当前项目根目录(${folder})。别漏掉双引号和逗号,JSON 格式错一个字符就失效。
注意:快捷键配置必须写在 Preferences → Key Bindings 右侧「用户配置」区,左侧默认配置区改了无效。
Ctrl+C 不生效、方向键乱码、中文显示方块?
这些不是 UI bug,是终端模拟层没对齐 shell 的行为预期:
-
Ctrl+C失效?在快捷键配置里把命令换成terminus_send_key,参数设为{"key": "c", "ctrl": true} - 方向键、补全、历史命令不能用?说明启动的是非交互式 shell,确保没在
args.cmd里加--norc或--noprofile(除非你故意要干净环境) - 中文乱码?Linux/macOS 下检查
locale输出是否含UTF-8;Windows 下若用pwsh,确认终端编码设为 UTF-8($OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding)
最常被忽略的一点:Terminus 的会话是持久化的——关掉面板不等于杀进程,下次打开可能接着上次的 shell 状态跑。调试 shell 启动问题时,别只看第一次打开,要关掉再重开几次确认是否稳定。


















