Sublime Text 本身无终端,Ctrl+`打开的是仅执行Python代码的控制台,不支持ls、git等shell命令;需安装Terminal插件调用系统终端(推荐)或Terminus插件实现嵌入式终端,二者均需正确配置路径与环境变量。

Sublime Text 本身没有终端,按 Ctrl+` 打开的是 Python 控制台,不是 shell——输 ls 或 git status 必然报 NameError: name 'ls' is not defined。真要执行命令行,必须靠插件,且得选对类型、配对路径和环境。
怎么确认你根本没打开系统终端
按下 Ctrl+` 后看到 >>> 提示符,能运行 print("ok") 但输 ls 就报错,说明你卡在 Python 控制台里。它不读你的 .zshrc,不继承 PATH,也不能输入交互式命令。
- 这个控制台只适合调试插件或调用
sublime.active_window()这类 API - 所有需要
npm run dev、poetry shell、make test的场景,都得切到真正终端 - 退出它按
Esc或点右上角 ×,别反复按Ctrl+`切换
Terminal 插件:一键唤起真实系统终端(推荐日常用)
它不模拟、不嵌入,而是直接调用 cmd.exe(Windows)、Terminal.app(macOS)或 gnome-terminal(Linux),工作目录自动设为 $file_path,路径精准、无兼容问题。
- 安装:按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS)→ 输入Package Control: Install Package→ 搜Terminal(作者 wbond)→ 回车 - 使用:默认快捷键是
Ctrl+Shift+T(Win/Linux)或Cmd+Shift+T(macOS) - 未保存文件时,自动 fallback 到项目根目录;没项目就落到用户主目录,不会乱跳或报错
- 想改用 PowerShell(Win):进
Preferences → Package Settings → Terminal → Settings – User,填:{ "terminal": "powershell", "parameters": ["-NoExit", "-Command", "Set-Location '%CWD%'"] }
Terminus 插件:唯一稳定支持嵌入式终端的方案(需手动过几道坎)
它能在 Sublime 底部 panel 开一个可交互的终端,支持分屏、复用会话、粘贴历史,但装完不能直接用——环境变量、shell 启动模式、权限配置缺一不可。
- 安装必须走
Package Control,搜Terminus(注意不是Terminal或任何 fork 版) - 首次运行后它读的是 Sublime 启动时的环境变量,不会自动 source ~/.zshrc,所以常报
command not found - 解决方法:在
Preferences → Package Settings → Terminus → Settings中启用"shell": "login",让 shell 以 login mode 启动 - macOS 用户需去
System Preferences → Security & Privacy → Privacy → Accessibility手动勾选终端应用(如Terminal.app或iTerm2),否则键盘输入被拦截 - 关 panel ≠ 关进程:退出要手动敲
exit,否则后台还在跑
Build System 能不能当终端用?不能,但适合单次命令
它本质是 JSON 配置,用来一次性执行脚本、编译、格式化等任务,输出只读、不能输入、不支持多行交互。
- 新建:
Tools → Build System → New Build System…,填入类似内容:{ "shell_cmd": "python3 \"$file\"", "working_dir": "$file_path", "selector": "source.python" } -
"shell_cmd"支持$file、$file_path等变量,但双引号和反斜杠转义必须正确,否则报Invalid escape character - 常见假性失败:命令执行完窗口一闪而过——因为 build system 默认不暂停,加
"shell_cmd": "python3 \"$file\"; read -p 'Press enter to continue...'"(Linux/macOS)或"cmd /c python3 \"$file\" & pause(Windows)可临时解决 - 它永远在当前打开文件的目录下执行;没打开文件时可能失败,不如 Terminal 插件可靠
最易被忽略的点是环境变量加载时机:Terminal 插件调用的是系统终端,自然继承全部配置;Terminus 启动时若没设 "shell": "login",连 python3 都找不到——这不是插件问题,是 shell 启动模式没对上。


















