terminus 是 sublime text 唯一稳定支持嵌入式终端、工作目录同步和多 shell 切换的插件,需通过 package control 安装并正确配置环境变量、登录 shell 和工作目录变量(如 ${file_path:${folder}})才能正常运行复杂命令。

Sublime 本身不运行 Shell 进程,所有“内置终端”插件(包括 Terminus)都是模拟或桥接,真正执行命令的仍是系统 shell。想让复杂脚本(比如带环境变量、多阶段构建、交互式调试)跑得稳、输出可追溯、路径不跳错,靠插件默认配置大概率会卡在 command not found 或工作目录错乱上。
为什么 Terminus 启动后找不到 python/node/git
不是插件坏了,是 Sublime 启动时没加载你的 shell profile(~/.zshrc、~/.bash_profile 或 Windows 的用户环境变量)。Terminus 默认以 non-login、non-interactive 模式启动,跳过了 profile 加载逻辑。
- macOS/Linux:在
Preferences → Package Settings → Terminus → Settings中,把"shell_configs"里对应项的"env"设为null,并开启"login_shell": true - Windows:PowerShell 默认就是 login shell,但 git-bash 必须显式指定完整路径(如
"C:\Program Files\Git\bin\bash.exe"),且需在shell_configs中加"login_shell": true - 验证方式:启动 Terminus 后直接输
echo $PATH,对比终端里原生执行结果是否一致
如何让 Terminal 自动 cd 到当前文件所在目录
Terminus 支持基于视图自动切换路径,但默认关闭。手动 cd 容易出错,尤其项目结构深或符号链接多时。
- 打开
Terminus.sublime-settings(用户设置),加入:"default_config": "Default", "shell_configs": [ { "name": "Default", "cmd": ["bash"], "env": null, "login_shell": true, "working_dir": "${file_path:${folder}}" } ] -
${file_path}表示当前编辑文件的目录;${folder}是项目根目录;用${file_path:${folder}}表示“有文件就用文件目录,没文件就退到项目根” - 注意:如果当前是未保存的新建标签页,
${file_path}为空,会 fallback 到${folder},避免报错
运行长输出脚本时终端卡死或截断怎么办
Terminus 默认缓存 1000 行历史,遇到日志滚动、npm run dev 或实时 tail,很快撑爆缓冲区,导致响应延迟甚至假死。
- 在用户设置中调大缓冲:
"scrollback_history": 5000, "scrollback_history_limit": 10000
- 禁用不必要的渲染开销:
"show_scroll_bar": "disabled", "draw_white_space": "none", "highlight_line": false
- 对纯查看场景(如看 build 输出),右键终端面板 →
Terminus: Toggle Scroll Lock,锁定后不再自动滚到底部,避免重绘压力
快捷键冲突与多终端协作的实际约束
Ctrl+Shift+T 在 Sublime 里默认是“重新打开最近关闭的标签页”,和 Terminus 的“打开新终端”冲突——很多人装完插件发现快捷键无效,其实是被原生功能劫持了。
- 进
Preferences → Key Bindings,在右侧用户键绑定里加:[ { "keys": ["ctrl+shift+t"], "command": "terminus_open", "args": { "cwd": "${file_path:${folder}}" } } ] - 多个终端标签页间不能共享进程状态(比如一个 tab 里
source venv/bin/activate,另一个 tab 不会生效),别指望它替代 tmux 或 screen - 想复用已有终端会话?Terminus 不支持 attach 到外部进程,只能靠
Terminus: New Terminal手动重建相同环境
真正影响调试体验的,从来不是“能不能打开终端”,而是环境变量是否完整、路径是否精准、输出是否可控、以及你有没有意识到 Sublime 的进程模型和终端 shell 是两套独立生命周期——这点一旦忽略,所有优化都会在某次 pip install 或 ssh 连接时突然失效。











