Sublime进阶配置必须在Preferences → Settings右侧用户设置中修改,左侧为只读默认文件;需同时设置tab_size和detect_indentation:false以防被覆盖;语法专属配置须通过Settings – Syntax Specific打开;save_on_focus_lost是唯一原生自动保存方案。

Sublime 的进阶配置不是堆参数,而是精准覆盖关键项——改错文件、写错 key、忽略覆盖逻辑,这三类问题占了 90% 的“不生效”反馈。
Preferences → Settings 右侧才是真用户配置
所有你写的配置必须落在菜单 Preferences → Settings 打开的右侧编辑区里。左侧是只读的 Default/Preferences.sublime-settings,任何修改都会在升级时被重置。
常见错误现象:改完 font_size 没反应、重启后缩进又变回 4、中文还是乱码。
- 检查是否误点了左侧(灰色不可编辑区域)并保存了——Sublime 不会报错,但也不会读取
- Windows 路径应为
%APPDATA%\Sublime Text\Packages\User\Preferences.sublime-settings,macOS 是~/Library/Application Support/Sublime Text/Packages/User/Preferences.sublime-settings,但别手动找,用菜单打开最稳 - 右侧编辑框必须是合法 JSON:键名和字符串值都得用双引号,不能有尾逗号,不能用单引号
tab_size 和 detect_indentation 必须一起关
单独设 tab_size 为 2 或 4,打开旧项目时仍可能被顶掉——因为 detect_indentation 默认为 true,它会在文件打开时偷偷读取首行缩进并覆盖你的设置。
使用场景:团队 Python 项目统一用 4 空格,但你本地想强制保持;或写 Vue/JSON 时坚持 2 空格,不希望被 .py 文件带偏。
- 务必同时设置:
"tab_size": 4和"detect_indentation": false - 如果还想要空格替代 Tab,加上
"translate_tabs_to_spaces": true(推荐开启,避免混用引发IndentationError) - 注意:关闭
detect_indentation后,新文件将严格按你设的tab_size缩进,不会“智能猜”
语法专属配置要走 Settings – Syntax Specific
全局 Preferences.sublime-settings 无法区分语言行为。比如你想让 JavaScript 补全括号,但 TypeScript 里禁用,就得用语法专属配置。
常见错误:手动在 Packages/User/ 下建 JavaScript.sublime-settings,结果 Sublime 不认——路径对、名字对,但没绑定语法上下文。
- 正确做法:打开一个 JS 文件 →
Preferences → Settings – Syntax Specific,它会自动创建并关联Packages/User/JavaScript.sublime-settings - 文件名必须和语法名完全一致(大小写、空格、点都不能错),例如 Vue 文件对应的是
Vue Component.sublime-settings,不是vue.sublime-settings - 常用覆盖项:
"tab_size"、"auto_complete"、"word_separators"(如给 JS 加$,需重写整个字符串,不能只追加)
save_on_focus_lost 是唯一原生自动保存方案
Sublime 没有“实时保存”或“定时保存”原生选项。save_on_focus_lost 是官方唯一支持、零依赖、低干扰的自动保存机制:仅在你切出整个 Sublime 窗口时触发一次保存。
容易踩的坑不是配置本身,而是生效条件被忽略:
- 新建未命名文件(
untitled)不会保存,必须先Ctrl+S保存为真实路径(如test.py) - 编辑只读文件(如
/etc/hosts)或挂载目录时,系统拒绝写入,Sublime 静默失败,不提示也不报错 - 不要和 AutoSave 插件共存——插件配置独立,且默认启用定时保存,两者逻辑冲突可能导致误存或卡顿
真正复杂的是覆盖逻辑本身:用户设置不是“叠加”,而是“替换”。比如 ignored_packages 是数组,你写 ["Anaconda"],就等于把默认的 ["Vintage"] 也取消了——这种隐式清空,最容易在换环境后引发意外行为。

















