Sublime Text的Terminal插件默认打开路径取决于上下文:已保存文件则为文件所在目录,未保存文件则为Sublime启动路径(通常为主目录);可通过项目设置中配置terminus_default_directory或terminal.working_dir强制设为项目根目录。

Terminal插件默认打开的是哪个路径
Sublime Text 的 Terminal 插件(通常指 Terminus 或原生 Terminal)默认打开的路径,取决于你当前操作的上下文:如果光标在已保存的文件中,它会 cd 到该文件所在目录;如果文件未保存或新建未命名,它会 fallback 到 Sublime 的启动路径(通常是用户主目录)。这不是 bug,是设计行为,但容易让人误以为“没生效”。
怎么让 Terminal 插件强制在项目根目录打开
关键不是改插件本身,而是靠 Sublime 的 project settings 显式指定工作路径。你需要在项目设置里加一条 terminal_path 或(对 Terminus)配置 default_directory:
- 菜单栏 → Project → Edit Project,在
settings块里加:"settings": { "terminus_default_directory": "${project_path}" } - 如果用的是老版
Terminal插件(非 Terminus),则加:"terminal": { "working_dir": "${project_path}" } -
${project_path}是 Sublime 内置变量,只在有 .sublime-project 文件时有效;没项目时可用${file_path}或硬编码绝对路径(如/Users/you/workspace/myapp)
为什么按快捷键 Ctrl+Shift+T 没反应或路径不对
常见原因不是插件没装好,而是快捷键被系统或其他插件劫持了,或者 Terminal 插件根本没激活:
- 检查是否安装了
Terminus(推荐)而非弃用的Terminal:Package Control →Install Package→ 搜Terminus,卸载旧Terminal - 确认快捷键绑定没冲突:菜单 → Preferences → Key Bindings,搜
terminus_open,确保有类似这样的绑定:{ "keys": ["ctrl+shift+t"], "command": "terminus_open" } - 如果终端打开了但路径仍是 home 目录,说明当前没加载项目 —— 必须用
Project → Open Project打开一个含.sublime-project的文件夹,不能只用File → Open Folder
进阶:不同项目用不同终端启动命令(比如 zsh / docker exec)
Terminus 支持 per-project 的 shell 配置,比全局设置更灵活。在项目设置里直接覆盖 shell 行为:
"settings": {
"terminus_default_shell": "/bin/zsh",
"terminus_default_shell_args": ["-l"],
"terminus_default_directory": "${project_path}/backend"
}
还可以用 terminus_open 命令参数动态指定,比如绑定一个新快捷键执行:
{"keys": ["ctrl+alt+t"], "command": "terminus_open", "args": {"cwd": "${project_path}/frontend", "shell_cmd": "npm run dev"}} 这样每次按就自动进 frontend 目录并跑 dev server。
注意:shell_cmd 会绕过 shell 初始化(不读 .zshrc),需要显式加 -l 参数或写成 zsh -l -c "npm run dev"。这点很容易漏,导致环境变量缺失、命令找不到。










