sublime text 默认不将“打开文件夹”视为项目,必须通过 project → save project as… 保存 .sublime-project 文件并正确配置 folders 数组(如 [{"path": "."}]),修改后需手动重载项目,窗口标题显示项目名才表示生效。

Sublime Text 默认不把“打开文件夹”等同于“加载项目”,直接 File → Open Folder 只是显示侧边栏,Copy Relative Path、folder_exclude_patterns、构建系统里的 $project_path 全都不生效。真想让文件夹变成可管理的项目,必须手动保存 .sublime-project 文件。
File → Open Folder 和 Project → Save Project As… 的本质区别
前者只是临时浏览目录,后者才真正定义项目边界。Open Folder 后窗口标题仍是“Untitled”或空白,而成功加载项目后标题会显示项目名(如 myapp.sublime-project)。只有后者能激活所有项目级功能。
- Open Folder:侧边栏有文件树,但
project_folder变量为空,$project_path解析失败 - Save Project As…:生成 JSON 文件,Sublime 从此认这个路径为根,
folders数组决定哪些目录参与索引和路径计算 - 没存过项目时,命令面板里
Project: Edit Project灰掉;点了它才能编辑,说明项目已存在
保存 .sublime-project 文件必须填对 folders 数组
哪怕只管理一个文件夹,folders 也必须是数组,不能是对象或字符串。写错格式会导致整个项目配置静默失效——界面没报错,但所有依赖它的功能都退化成普通文件浏览。
- 正确写法:
"folders": [{"path": "."}]—— 点号.表示项目文件所在目录,移动项目时无需改路径 - 错误写法:
"folders": {"path": "."}(缺方括号)、"folders": "."(不是数组)、"folders": [{"path": "C:/code/myapp"}](绝对路径无法共享) - Windows 下路径分隔符必须用
/,写\会导致 JSON 解析失败,Sublime 不提示,只当配置不存在
导入已有项目时,.sublime-project 文件放哪不重要,但内容要重校准
别人发来的 .sublime-project 文件,直接双击打开大概率侧边栏空着——因为里面写的 path 是他本地的绝对路径。你得手动编辑,把路径改成相对形式或删掉重加。
- 打开项目后,按
Ctrl+Shift+P输入Project: Edit Project,修改folders数组 - 最省事:删掉原有
path,新增{"path": "."},保存后 Sublime 自动把当前窗口根目录当项目根 - 如果项目含多个源码目录(如
src/和tests/),可写成[{"path": "src"}, {"path": "tests"}],但Copy Relative Path只以第一个为准 - 改完别忘了按
Ctrl+Shift+P输入Project: Reload Project,否则新配置不生效
真正容易被忽略的是:项目配置生效后,所有插件行为都可能随之变化。比如 SideBarEnhancements 的右键菜单、GitGutter 的状态栏显示、甚至 Build System 里 $file_path 的解析逻辑,全依赖 folders 是否准确。别只盯着侧边栏有没有文件——先确认窗口标题有没有项目名,再查控制台有没有 reloading project 日志,这才是项目真正就位的信号。











