sublime的project定义项目结构(如路径、构建系统),应提交git;workspace仅记录个人会话状态(如光标位置、标签页),须忽略git。双击workspace打不开因它不包含路径,必须依赖project文件。

Sublime 的 Project 和 Workspace 不是两个可互换的“工作区”选项,而是职责完全分离的两类文件:.sublime-project 定义“这是什么项目”,.sublime-workspace 记录“我此刻怎么用它”。混淆二者,90% 的状态丢失、切换失败、双击空白、同事打不开等问题都由此而来。
为什么双击 .sublime-workspace 只打开空窗口
因为 .sublime-workspace 本身不包含任何路径或配置信息——它只存光标位置、标签页顺序、分屏布局、未保存修改等运行时状态。它必须依附于一个已加载的 .sublime-project 或“无项目模式”才能还原。单独双击时 Sublime 没有上下文,只能启动默认空窗口。
- 常见误操作:把
.sublime-workspace发给同事,指望对方双击就能看到你当时的 tabs - 正确做法:发
.sublime-project+ 明确告知项目根目录(或在配置中用相对路径"path": ".") - Git 提交策略:
.sublime-project应纳入版本控制;.sublime-workspace必须加进.gitignore
Project → Switch Project 列表为空的根本原因
这个菜单(快捷键 Ctrl+Alt+P / Cmd+Ctrl+P)只显示你**亲手通过 Project → Open Project 加载过**的 .sublime-project 文件,不是磁盘上所有同名文件。
- 最常被跳过的步骤:只执行了
File → Open Folder…,却没点Project → Save Project As…—— 此时根本没生成有效项目文件 -
.sublime-project若放在 Sublime 安装目录或Packages/下,路径解析会失效,侧边栏可能报folder not found - 菜单项
Project → Switch Project…实际跳转的是最近打开的文件夹,和项目文件无关,别被名字误导
如何让 frontend + backend 共存又隔离
不能靠“打开父目录”覆盖,也不能靠 Add Folder to Project… 就完事——必须显式声明、保存、并理解其作用边界。
- 先
File → Open Folder…打开frontend目录,再Project → Add Folder to Project…添加backend路径 - 每个添加项在
.sublime-project中表现为"folders"数组里的独立对象,支持各自"folder_exclude_patterns" - 添加后务必再点一次
Project → Save Project(注意不是Save Project As…),否则改动不会写入磁盘 - 项目级设置(如
"tab_size")必须严格落在"settings"字段下;写错位置或拼错键名,等于白改
真正可复用的项目必须含 folders 字段
一个空的 .sublime-project 文件如果没有 "folders" 数组,就只是个壳——它无法告诉 Sublime “该从哪开始索引文件”,Ctrl+P 搜不到内容,侧边栏为空,构建系统不生效。
- 手动编辑时,确保
"folders"是顶层字段,且每个子项至少含"path"(绝对或相对均可,但相对路径推荐用"."并把文件放在项目根目录) - 想预设打开某些文件?加
"files"字段:"files": ["README.md", "src/main.py"] - 终端插件默认工作目录是当前文件路径,不是项目根;想让它进项目根,得在
"settings"里加"terminal": { "working_dir": "$project_path" }
Project 文件不是“保存当前状态”的快照,而是“定义工作边界”的契约;Workspace 文件也不是“项目备份”,而是“个人操作痕迹”的日志。把前者当配置来写,后者当缓存来忽略,才是 Sublime 多项目管理不翻车的核心逻辑。











