terminus 是 sublime text 唯一稳定支持交互式终端会话的插件,需正确配置 shell 路径、cwd 参数及非交互模式兼容性,否则易因路径错误、权限拦截、模块导入失败或 shell 初始化阻塞导致闪退或卡死。

Terminus 是 Sublime Text 唯一能稳定维持交互式终端会话的插件,不是“打开命令行窗口”那种一次性构建输出,而是真终端——支持方向键、Ctrl+C 中断、补全、多标签、分屏。装错或配错,90% 的问题都出在 shell 启动路径、工作目录或非交互模式卡死上。
Terminus 安装失败或命令不出现?先查控制台报错
按 ctrl+` 打开 Sublime 控制台,安装后如果搜不到 Terminus: Open Default Shell in Panel,大概率是插件没加载成功。常见原因:
- Package Control 下载中断:删掉
Packages/Terminus/目录,重装 - 报
ImportError或No module named terminus:说明 Python 模块导入失败,重装前确认 Sublime 是 ST4(Build 41xx+),旧版 ST3 不兼容 - macOS 上权限被拦截:首次运行时系统弹窗拒绝访问辅助功能,需手动到「系统设置 → 隐私与安全性 → 辅助功能」添加 Sublime
terminus_open 必须传 cwd 参数,否则默认路径不可控
直接绑定 {"command": "terminus_open"} 而不带 cwd,终端大概率打开在 Sublime 启动时的工作目录(通常是用户主目录),而不是你正在编辑的文件所在位置。正确做法是用变量动态推导:
-
"cwd": "${file_path:${folder}}":当前有文件打开时用其路径,无文件时退回到项目根目录 - 硬写绝对路径如
"cwd": "/home/user/myproject":跨项目失效,且 Windows/macOS 路径格式不同 - 别信
${project_path}:Sublime 不保证该变量始终存在,尤其单文件打开时为空
示例键位配置(用户 key bindings):
[{"keys": ["ctrl+alt+t"], "command": "terminus_open", "args": {"cwd": "${file_path:${folder}}"}}]
Windows 用 Git Bash / macOS 用 zsh?必须显式指定 shell 或 cmd
Terminus 默认只认 cmd.exe(Win)和 bash(macOS/Linux),不会自动从 PATH 查找你装的 pwsh、zsh 或 git-bash。不指定就容易报 “exec: 'zsh': executable file not found” 或启动后环境变量缺失。
- Windows + Git Bash:
"shell": "C:\Program Files\Git\bin\bash.exe"(注意双反斜杠) - macOS + zsh:
"cmd": ["/bin/zsh", "--norc", "--noprofile"](加--norc避免~/.zshrc里阻塞命令导致卡死) - Linux 上若提示
sh: not found:不是插件问题,是系统$PATH异常,检查echo $PATH是否含/bin和/usr/bin
终端一敲命令就闪退或卡住?多半是 shell 配置文件在捣鬼
Terminus 启动 shell 是非交互式(non-interactive)模式,但某些 .bashrc 或 .zshrc 仍会被 source,里面若有 curl、sleep、nvm load 等阻塞操作,终端就起不来。
- 临时验证:用干净 shell 启动:
{"cmd": ["/bin/bash", "--norc", "--noprofile"]} - 长期解法:把耗时初始化逻辑包在
[[ $- == *i* ]]判断里(只对交互式 shell 生效) - PowerShell 用户注意:
$PROFILE里的命令也会执行,同样建议加if ($host.Name -eq 'ConsoleHost')包裹
真正难调的点从来不在插件本身,而在你 shell 配置里那几行没人记得清的初始化代码。











