Sublime Text 项目配置需在根目录放名为 .sublime-project 的合法 JSON 文件,通过 "settings" 和 "folders" 实现项目级与子目录级规则覆盖,且必须通过 Project → Open Project 加载才生效。

项目根目录下放 .sublime-project 文件
Sublime Text 不通过全局设置实现“不同项目不同规则”,而是靠每个项目专属的 .sublime-project 文件。这个文件必须放在项目根目录(即你用 Project → Open Project 打开的那个文件夹),且必须是合法 JSON 格式。
常见错误:把配置写在 Preferences.sublime-settings 里,或放在子目录、重命名成 sublime-project.json —— 这两种都不会生效。
- 文件名必须严格为
.sublime-project(开头带点,无后缀) - 内容需是 JSON 对象,最外层不能是数组或纯字符串
- 如果项目已打开,修改后需执行
Project → Save Project As…才会写入磁盘(仅新建项目时自动创建)
"settings" 块控制编辑器行为,"folders" 定义作用范围
项目配置的核心是 "settings" 字段,它会覆盖用户/语言级设置,只对当前项目生效。而 "folders" 不只是路径列表,它还能为不同子目录指定独立规则(比如排除某些文件、启用特定构建系统)。
例如,你想让 backend/ 下的 Python 文件默认使用 4 空格缩进,但 frontend/ 下的 JS 用 2 空格,不能靠一个 "tab_size" 统一设 —— 得配合文件夹作用域和语法绑定。
-
"settings"里的键(如"tab_size"、"trim_trailing_white_space_on_save")直接生效于整个项目 -
"folders"中每个对象可加"path"和"settings",后者仅对该路径下的文件起作用(需 Sublime Text 4126+) - 若需按语法区分规则(如 JS vs Python),应在
"settings"外层用"syntax_specific_settings",但该字段不支持写在项目文件中,只能靠语言包自带或用户级配置
{
"folders":
[
{
"path": "backend",
"settings": {
"tab_size": 4,
"translate_tabs_to_spaces": true
}
},
{
"path": "frontend",
"settings": {
"tab_size": 2,
"detect_indentation": false
}
}
],
"settings": {
"font_size": 13,
"ignored_packages": ["Vintage"]
}
}
文件编码、换行符、自动补全等细节也走 "settings"
很多人只改缩进或字体,却忽略 "default_encoding" 或 "default_line_ending" 导致协作时出问题。这些字段在项目配置中优先级高于用户设置,适合强制统一团队规范。
另外,"auto_complete"、"auto_complete_commit_on_tab" 这类补全行为,以及 "index_files"(是否索引项目内文件用于 Goto Definition),都可在项目级开关 —— 尤其适合大型单体仓库,避免为整个工作区建索引拖慢响应。
-
"default_line_ending"推荐设为"unix"(即使 Windows 用户),防止 Git 提交时误转CRLF -
"index_files"设为false可显著降低内存占用,但会禁用项目内符号跳转 -
"binary_file_patterns"支持正则,比如"node_modules/**"或"*.log",避免大日志文件被加载进缓存
项目配置不会继承用户设置,记得手动补全常用项
Sublime Text 的配置层级是「项目 > 语法 > 用户 > 默认」,项目配置是完全覆盖,不是叠加。这意味着如果你只写了 "tab_size",那 "font_face"、"highlight_line" 这些用户级设置就失效了 —— 编辑器会回退到默认值(通常是 Courier、无高亮)。
所以实际使用中,建议从用户设置里复制一份基础配置,再在项目文件中增量修改。否则容易出现字体变小、括号不匹配、行号消失等“突然变陌生”的情况。
- 不要假设项目配置会保留你习惯的 UI 行为,所有视觉和交互相关项都要显式声明
- 用
Preferences → Settings – User查看当前用户设置,挑关键项粘贴进项目文件的顶层"settings" - 如果项目含多种语言,且某语言需要特殊插件行为(如 ESLint 配置路径),得额外配
"build_systems"或插件专属字段(如"eslint_options"),这类字段不在 Sublime 原生文档里,得查对应插件说明
Project → Open Project 打开那个 .sublime-project 文件,而不是直接打开文件夹或单个文件 —— 后两者根本不会加载项目配置。









