terminus是sublime text唯一支持嵌入、交互与会话复用的终端插件,但需手动配置shell路径、cwd参数(如"${file_path:${folder}}")、环境变量及启动模式(如"shell":"login"),否则易出现command not found、闪退、方向键失灵等问题。

Terminus 是 Sublime Text 唯一能真正嵌入、交互、复用会话的终端插件,但“无缝”不是装完就自动生效——它默认不加载你的 ~/.zshrc、不继承完整 PATH、不自动跳转到当前文件目录。所谓无缝,全靠手动配对。
安装后终端打不开或一闪而退?先查 shell 可执行路径
Terminus 启动失败最常见原因是找不到 shell 可执行文件。它不会智能猜你装了什么 shell,只认你配置里写的绝对路径或命令名。
- Windows 用户别写
powershell.exe就完事——得确认系统真有这个可执行文件(Win10/11 一般有,旧版可能只有pwsh.exe或cmd.exe) - macOS 用户写
zsh没问题,但如果改过默认 shell(比如用fish),就得显式写fish,且确保which fish返回有效路径 - Linux 用户注意:某些发行版(如 Ubuntu Server)默认没装
bash的完整环境变量,terminus_open启动时可能因缺少/usr/bin/env而卡住 - 验证方式:在终端里直接运行
zsh -i -l(macOS/Linux)或powershell -NoExit(Windows),能正常进入交互态,Terminus 才可能成功
cwd 参数不生效?变量行为有边界
cwd 决定终端打开时的工作目录,但 ${file_path} 和 ${folder} 不是万能的——它们只在特定上下文展开。
- 当前没保存的文件:
${file_path}展开为空,fallback 到用户主目录,不是项目根目录 - 多文件夹工作区中:
${folder}只取第一个文件夹,不是当前编辑文件所在路径 - 推荐写法:
"cwd": "${file_path:${folder}}",意思是“优先用当前文件路径,没文件就用第一个项目文件夹” - 如果总想固定在项目根目录,建议用
"cwd": "/absolute/path/to/your/project",避免变量歧义
命令执行报 command not found?环境变量没继承
Terminus 默认启动的是 non-login、non-interactive shell,所以 ~/.zshrc、~/.bash_profile 全部不加载——你的 alias、nvm、pyenv、自定义 PATH 都失效。
- Mac/Linux:在 Terminus 设置里加
"shell": "login"(注意不是shell_args),让它走 login shell 流程 - Windows PowerShell:加
"args": ["-NoExit", "-Command", "if (Test-Path $PROFILE) {. $PROFILE}"],手动加载配置文件 - 通用方案:在
env字段里硬编码 PATH,比如"env": {"PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"}(macOS 示例) - 验证是否生效:终端里执行
echo $PATH或which python,结果应和你在系统终端里一致
方向键失灵、Ctrl+C 不中断?终端模式没对齐
这是 shell 类型和 Terminus 启动参数不匹配的典型症状。比如用 bash 但没启 interactive 模式,或用 zsh 却漏了 -i 参数。
- bash/zsh:必须带
-i(interactive)参数,否则 readline 功能关闭,方向键、历史命令、Ctrl+C 全失效 - PowerShell:必须带
-NoExit,否则命令执行完立即退出,根本来不及交互 - cmd.exe:Windows 默认没问题,但若想支持 ANSI 颜色(比如
ls --color),需启用 Virtual Terminal(Win10 1607+ 默认开启,老系统要 registry 手动开) - 检查方法:在终端里输入
stty -a(Unix)或$host.UI.RawUI(PowerShell),看是否识别为交互式会话
真正让 Terminus “无缝”的,不是插件本身,是你对 shell 生命周期、环境加载顺序、变量展开时机的理解。配错一个参数,它就退回成“能显示字符的窗口”,而不是“可信任的开发终端”。











