应修改用户设置文件而非默认设置文件,路径为windows:%appdata%\sublime text\packages\user\preferences.sublime-settings,macos:~/library/application support/sublime text/packages/user/preferences.sublime-settings,linux:~/.config/sublime-text/packages/user/preferences.sublime-settings;菜单preferences → settings中右侧为可编辑的用户设置,左侧默认设置只读且升级会被重置。

怎么改 Sublime Text 的默认设置才不被覆盖
Sublime Text 的用户设置会覆盖默认设置,但很多人改完 Preferences.sublime-settings 发现重启后“又变回去了”——其实是改错了文件。默认设置(Default/Preferences.sublime-settings)是只读的,任何修改都会在升级时被重置;必须改用户目录下的 Preferences.sublime-settings。
打开方式:菜单栏 Preferences → Settings,左侧是默认设置(灰色、不可编辑),右侧是用户设置(可编辑、生效)。别手滑往左边写。
- Windows 路径:
%APPDATA%\Sublime Text\Packages\User\Preferences.sublime-settings - macOS 路径:
~/Library/Application Support/Sublime Text/Packages/User/Preferences.sublime-settings - Linux 路径:
~/.config/sublime-text/Packages/User/Preferences.sublime-settings
常用配置项哪些该开、哪些慎开
不是所有推荐配置都适合你当前环境。比如 font_size 设太小在 4K 屏上根本看不清;tab_size 设成 2 后打开别人写的 Python 项目(用 4 空格缩进),会直接报 IndentationError。
-
"font_size": 12—— 建议先试 13 或 14,尤其高分屏 -
"tab_size": 4—— Python/HTML 默认值,改之前确认团队规范 -
"translate_tabs_to_spaces": true—— 开,避免混用 tab 和空格引发的格式错乱 -
"detect_indentation": false—— 关掉自动检测,否则打开老项目时缩进会被悄悄改掉 -
"auto_complete_commit_on_tab": false—— 开了容易误触补全,尤其写 JSON 或路径时
插件和用户设置冲突怎么办
很多插件(比如 EditorConfig、SublimeLinter)会动态覆盖你的设置。例如 EditorConfig 插件读到项目根目录的 .editorconfig 文件后,会强制把 tab_size 改成文件里写的值,你本地设置就失效了。
- 检查是否装了
EditorConfig:菜单 Tools → EditorConfig → Toggle EditorConfig,关掉试试 - 查插件文档里有没有“override”、“force”类关键词,比如
SublimeLinter的lint_mode会影响保存时是否触发校验 - 临时排除插件干扰:启动时加
--safe-mode参数(命令行运行subl --safe-mode),再对比设置是否生效
改完没反应?先看这几件事
改完 Preferences.sublime-settings 没效果,大概率不是语法错,而是被其他层拦截了。Sublime 的设置加载顺序是:默认设置 → 用户设置 → 语言专属设置 → 项目设置 → 插件运行时覆盖。
- 检查右下角状态栏:当前是不是处于某个语言模式(如 “Python”)?那可能被
Python.sublime-settings覆盖了 - 项目里有没有
.sublime-project?它里面的"settings"会覆盖全局用户设置 - JSON 格式是否合法?少个逗号、多引号、注释(Sublime 不支持 JSON5)都会导致整个用户设置加载失败,此时会退回到默认值
- 改完记得保存(
Ctrl+S/Cmd+S),Sublime 不会自动保存设置文件
最麻烦的是项目设置和语言设置叠加生效,这时候得一层层打开对应文件看,而不是盯着用户设置猛改。











