Sublime Text 不支持真正切换项目根目录,Project → Switch Project 会清空所有标签页和状态并覆盖加载新项目;安全做法是先保存文件,再通过 Open Folder… 和 Save Project As… 在目标目录创建新项目文件。

Sublime Text 不能“切换”项目根目录——它只支持“关闭当前项目 + 新开窗口加载另一个项目”,或“在当前窗口用 Project → Switch Project 强制覆盖”。但后者会丢掉所有未保存的文件和折叠状态,实际不可靠。
为什么 Project → Switch Project 不等于切换根目录
这个菜单项实际行为是:Project → Switch Project 会清空当前窗口全部打开的标签页、侧边栏结构、光标位置、折叠状态,然后加载目标 .sublime-project 文件里定义的 folders 数组。它不保留任何上下文,也不合并目录。
- 如果你当前窗口开着 10 个文件,点了 Switch Project,这 10 个标签页全关,且不会提示保存
-
.sublime-workspace文件不会被更新,下次从快捷键Ctrl+Alt+P打开原项目,还是回到旧状态 - 它不校验目标项目是否存在有效
folders;如果配置为空或路径失效,侧边栏直接空白,报错folder not found
真正安全的“换根目录”操作流程
所谓“切换根目录”,本质是把当前工作上下文迁移到另一个物理路径。唯一稳妥做法是:先保存当前状态,再新开窗口加载新项目。
- 按
Ctrl+K松开,再按Ctrl+S(Windows/Linux)或Cmd+K→Cmd+S(macOS)保存所有已修改文件 - 记下当前打开的文件路径(可选:复制到剪贴板),避免后续手动重开
- 执行
File → Open Folder…,选中新根目录(如/home/user/my-backend) - 立刻执行
Project → Save Project As…,存为my-backend.sublime-project,**必须放在该目录下** - 此时窗口标题栏显示
my-backend — Sublime Text,才是项目真正生效的信号
想临时加个目录?别用 Add Folder to Project
Project → Add Folder to Project… 是最常被误用的功能。它只是把另一个路径挂进当前项目 folders 数组,但所有设置(tab_size、build_systems、插件行为)仍共享,不是隔离环境。
- 前端用
"tab_size": 2,后端要"tab_size": 4?挂进去后全部变成 2,改设置会同时影响两个目录 - Terminal 插件默认工作目录仍是第一个
folders[0]的路径,不会自动切到新加的目录 - 搜索
Ctrl+Shift+F的Where:字段填.,只扫第一个目录,新加的目录不会被包含,除非显式写进Where:
容易忽略的关键点:.sublime-project 必须手动保存且路径固定
很多人以为打开文件夹就等于“有了项目”,其实没有 .sublime-project 文件,就没有任何项目上下文。而这个文件的位置,直接决定 Sublime 能否识别它。
-
Save Project As…时若没选在目标根目录下,而是存到桌面或 Sublime 安装目录,Ctrl+Alt+P列表里绝不会出现它 - 项目文件名可以任意,但推荐用
项目名.sublime-project格式,避免和.sublime-workspace混淆 - 如果项目含多个子模块(如 monorepo),应在
.sublime-project的folders数组里明确列出每个路径,而不是依赖Add Folder


















