sublime text 不支持切换配置方案,而是通过覆盖 preferences.sublime-settings 文件实现多环境;所有设置(主题、字体、缩进等)集中于此,gui 修改或插件启动时会强制重写该文件,导致手动修改回退;安全做法是用独立 json 文件备份完整配置并命令行覆盖,构建系统与用户设置分离,需注意路径格式及重启生效项。

Sublime Text 本身不支持“切换配置方案”这个动作——你不是在切换,而是在覆盖 Preferences.sublime-settings 文件。 所有看似“多套环境”的效果,都依赖你主动替换用户设置文件,且每次切换都要重写一次。UI 主题、字体、缩进、构建系统等全部藏在这个 JSON 文件里,改它就生效,不改就不变。
为什么改了设置又回退?
常见现象:你手动改完 Preferences.sublime-settings,运行一次 Python 脚本,再打开设置菜单点一下“Preferences → Settings”,内容又变回去了。
- Sublime 在你通过 GUI 修改任何设置时,会把当前界面值**强制写回**
Preferences.sublime-settings,覆盖你之前的手动修改 - 插件(比如 Anaconda、Theme Selector)也可能在启动时自动更新该文件
- 如果你用 Build System 切换 Python 版本,那只是改了构建命令,不影响编辑器 UI/行为设置
怎么安全地维护多套 Preferences.sublime-settings 备份?
核心是:别直接编辑 Preferences.sublime-settings,而是用独立文件存档,再用命令覆盖。
- 把不同场景的完整设置存为独立 JSON 文件,例如:
prefs-web.json(含 Monokai 主题、Tab width=2)、prefs-python.json(含 Soda Dark、Tab width=4、Python 构建路径) - 确保每个备份文件都包含完整字段,不要只写片段——Sublime 不合并,只全量覆盖
- Windows 用户注意路径分隔符:
%APPDATA%\Sublime Text 3\Packages\User\Preferences.sublime-settings;macOS/Linux 是~/Library/Application Support/Sublime Text 3/Packages/User/Preferences.sublime-settings - 执行覆盖后无需重启 Sublime,但 UI 主题、侧边栏宽度等部分设置需重启才刷新
构建系统(Python2/Python3)和用户设置是两回事
很多人混淆“运行 Python”和“切换编辑器环境”。构建系统只控制 Ctrl+B 跑哪条命令,它存在单独的 .sublime-build 文件里,和 Preferences.sublime-settings 无关。
- 新建 Build System 时保存的文件(如
Python2.sublime-build)放在Packages/User/下,不会影响字体、主题、缩进等 - 构建系统里的
"cmd"字段必须写绝对路径(Windows 用反斜杠\,或双正斜杠//),否则python.exe找不到 - 如果想让某套构建系统默认生效,得在
Preferences.sublime-settings里加一行:"build_systems": ["Python3"],但这仍属于用户设置范畴,不是构建系统自身属性
真正麻烦的不是写几行 JSON,而是每次切换都要意识到:你在操作一个会被 GUI 和插件反复篡改的单点文件。备份、覆盖、验证——这三步缺一不可,尤其当多个插件同时写入时,很容易覆盖掉你刚设好的 Python 解释器路径或主题名。











