terminus是sublime text 4唯一支持嵌入式交互终端的插件,但需正确配置shell路径、环境变量(如启用"shell":"login")和cwd参数(如"${file_path:${folder}}"),否则易出现卡死、命令不可用或路径错误。

Terminus 是 Sublime Text 4 唯一能真正嵌入交互式终端的插件,装完不等于能用——卡死、输不了字、一敲命令就闪退,基本都出在 shell 初始化或环境变量上。
为什么 terminus_open 按下没反应或卡在启动界面
这不是插件坏了,而是 shell 启动时被阻塞。比如 macOS 上 ~/.zshrc 里有超时的 curl 请求,或 Windows 上 PowerShell 配置文件加载了慢速模块。
- 先绕过所有初始化:用命令面板执行
Terminus: Open Shell in Panel,传参{"cmd": ["/bin/bash", "--norc", "--noprofile"]}(macOS/Linux)或{"cmd": ["powershell.exe", "-NoExit", "-Command", "cd $pwd"]}(Windows) - 如果干净 shell 能跑,说明问题出在配置文件里;逐行注释
~/.zshrc或$PROFILE找出阻塞行 - Linux 用户若用
gnome-terminal类桌面终端做 fallback,注意Terminus不调用它——它只管嵌入式面板,别混用
如何让 Ctrl+` 真正打开当前文件所在目录的终端
默认 terminus_open 不自动 cd 到当前文件路径,必须显式传参或配 working_dir。
- 在
Preferences → Key Bindings用户键位中写:[ { "keys": ["ctrl+`"], "command": "terminus_open", "args": { "cwd": "${file_path}", "title": "Terminal" } } ] -
${file_path}在没打开文件时为空,会 fallback 到项目根目录;没项目时 fallback 到$HOME,不会报错 - 别用
"cwd": "$file_path"(少大括号)——Sublime 不识别这种旧写法,会静默失败
Terminus 和 Terminal(wbond 版)到底该选哪个
二者定位完全不同:Terminal 是轻量级“跳转器”,Terminus 是“嵌入式操作系统”——不是性能差才选前者,是场景不同。
- 需要快速执行一条
git status或ls?用Terminal插件,它直接调cmd.exe/Terminal.app,路径准、无兼容风险 - 要跑
npm run dev并持续看输出、还要随时敲curl测试接口、再切标签跑 Python 交互?必须用Terminus,它支持多会话、滚动缓冲、ANSI 颜色、UTF-8 输入 -
Terminal在 ST4 上已停止维护,但只要不升级系统 shell,仍稳定;Terminus活跃更新,但每次 Sublime 大版本升级后需确认兼容性(如 Build 4152+ 已验证)
用 Build System 把当前文件一键扔进 Terminus 运行
Ctrl+B 默认走 Sublime 自带构建器,和 Terminus 无关。要让它把命令发到已打开的 Terminus 面板,得用 terminus_exec 目标。
- 新建 Build System(
Tools → Build System → New Build System),内容示例(Python):{ "target": "terminus_exec", "cmd": ["python", "-u", "$file"], "file_regex": "^[ ]*File \"(*?)\", line ([0-9]*)", "working_dir": "$file_path", "selector": "source.python" } -
-u参数强制 Python 输出不缓冲,否则日志看不到实时打印 - 别漏掉
"selector",否则其他语言文件也能触发,可能执行失败 - 这个 Build System 只在已有
Terminus面板时生效;没开面板时会静默失败,不会自动拉起新终端
nvm、pyenv、PowerShell 模块自动加载时,必须检查 shell_configs 里的 env 是否继承了完整 PATH,否则 node 或 python3 命令根本找不到。











