一个窗口里加多个文件夹会互相干扰,因为 Sublime Text 的 Add Folder to Project… 将路径统一写入同一 .sublime-project 的 folders 数组,导致 settings、插件行为和构建系统全局共享,无法隔离配置。

为什么一个窗口里加多个文件夹会互相干扰
因为 Sublime Text 的 Project → Add Folder to Project… 只是把路径塞进同一个 .sublime-project 的 folders 数组,所有文件夹共享一套 settings、插件行为和构建系统。比如你在 frontend 目录下配了 ESLint,它就会对 backend 目录里的 Python 文件报错;"tab_size": 2 和 "tab_size": 4 无法共存。
常见现象包括:
- Ctrl+P 搜索跨目录失效(索引没刷新)
- 侧边栏折叠状态在不同目录间“传染”
- Terminal 插件默认工作目录不是项目根,而是当前文件所在路径
正确保存项目文件的三步顺序
Sublime 不会自动推断项目边界,必须手动触发完整流程,否则 .sublime-project 是空壳。
- 先执行
File → Open Folder…,选中你要管理的根目录(如my-api/) - 再执行
Project → Save Project As…,把my-api.sublime-project保存在my-api/目录下(推荐用"path": ".") - 保存后窗口标题栏显示项目名(如
my-api — Sublime Text),这才是生效信号
漏掉第二步,重启后侧边栏空白、Goto Anything 索引丢失、构建系统不加载——这不是 bug,是设计逻辑。
新开独立窗口才是隔离微服务的唯一可靠方式
File → New Window 或快捷键 Ctrl+Shift+N 在多数版本里已被禁用底层逻辑,实际行为不可控。真正稳的方式只有命令行:
- macOS/Linux:
subl --new-window /path/to/my-frontend - Windows:
"C:\Program Files\Sublime Text\subl.exe" --new-window "D:\my-backend"
关键点:
- 必须带
--new-window参数,否则所有操作会被路由到前台窗口 - 确保
subl已加入 PATH;macOS 使用 Snap 安装时该参数可能被沙盒拦截,建议换 tarball 版本 - 每个窗口加载各自
.sublime-project,设置、插件、折叠状态完全隔离
用 ProjectManager 插件替代原生 Switch Project
原生 Project → Switch Project 只缓存你曾经手动打开过的项目路径,不扫描磁盘。项目移动、重命名或删掉后,菜单里仍残留旧条目,点开就报 Unable to open project: path does not exist。
ProjectManager 插件能主动扫描指定目录(默认 Packages/User/Projects/)下的所有 .sublime-project 文件,支持模糊搜索和自动刷新:
- 安装后,首次保存项目必须用命令面板执行
Project Manager: Save Project,不是原生的Save Project As… - 已有项目文件(如
my-service/my-service.sublime-project)需先运行Project Manager: Refresh Projects,再右键 →Import Project - 切换快捷键默认为
Ctrl+Alt+P,输入关键词即可匹配路径和项目名
真正麻烦的不是保存项目,而是让 Sublime 记住“这个窗口属于哪个上下文”,而原生机制对此极其脆弱——路径硬编码、缓存不刷新、窗口复用逻辑混乱,这些细节一旦忽略,多项目就变成定时炸弹。


















