sublime text 不支持自动按项目切换 ui 主题,仅 color_scheme 可项目级配置;必须通过 project → save project as… 保存合法命名的 .sublime-project 文件至根目录,且 settings 需置于 json 根级与 folders 并列,路径大小写、空格、扩展名须严格匹配。

Sublime Text 本身不支持“自动按项目切换 UI 主题”,所谓“项目隔离”只对 settings 生效,且必须靠 .sublime-project 文件手动定义——改错位置、路径写错、没重启窗口,全都会静默失效。
项目配置文件必须用 Project → Save Project As… 生成
手动新建 .sublime-project 文件或拖拽文件夹进 Sublime 都不生效。唯一可靠方式是:打开项目目录后,点菜单 Project → Save Project As…,保存到项目根目录,文件名不能含空格或中文(如 my-app.sublime-project 可以,my app.sublime-project 不行)。保存后窗口标题栏会显示项目名,这是唯一可信的生效信号。
-
.sublime-workspace文件会自动生成,必须和.sublime-project成对存在,缺一不可 - 用
File → Open Folder…打开目录 ≠ 加载项目配置;必须用Project → Open Project…选那个.sublime-project文件 - 项目配置只作用于该项目下通过 Sublime 打开的文件,
File → Open File…单独打开的文件不受影响
settings 必须写在 JSON 根级,不能嵌套
settings 字段必须和 folders 并列,放在 .sublime-project 的最外层。写在 folders[0] 里、或套在 build_systems 下,Sublime 直接忽略。
- 正确结构示例:
{ "folders": [{ "path": "." }], "settings": { "tab_size": 2, "translate_tabs_to_spaces": true, "color_scheme": "Packages/Dracula Color Theme/Dracula.tmTheme" } } -
file_exclude_patterns写在settings里才真正过滤搜索和跳转;写在folders的folder_exclude_patterns仅控制侧边栏显示 - 同名设置项会覆盖全局配置,但插件是否响应取决于它自己——比如
SublimeLinter读linters,TrailingSpaces看trailing_spaces_enabled
color_scheme 路径必须严格匹配,大小写和空格都不能错
UI 主题(theme)无法按项目切换,只有语法高亮(color_scheme)可以。路径必须以 Packages/ 开头,扩展名要对:新主题用 .sublime-color-scheme,老主题多是 .tmTheme,混用就白配。
- 别猜路径。先用
Ctrl+Shift+P → Color Scheme选一个已知可用的主题,看状态栏右下角显示的完整路径,例如:Packages/Color Scheme - Default/Mariana.sublime-color-scheme - 复制这个路径,只替换最后的文件名,保留中间所有空格和连字符(
Color Scheme - Default里的空格必须原样保留) - 路径错一位、大小写不对、或被插件(如 ApplySyntax)劫持,都会导致
color_scheme静默失败,且无报错提示
Python 解释器和构建系统要绑定到项目,不能靠全局设置
不同项目用不同 Python 版本或虚拟环境时,不能只改用户构建系统,必须把 build_systems 嵌进 .sublime-project。否则换项目后仍走旧解释器,补全和运行都错。
- 在
.sublime-project里加字段:"build_systems": [{ "name": "Python (venv)", "cmd": ["/absolute/path/to/venv/bin/python", "-u", "$file"], "file_regex": "^...$", "selector": "source.python" }] - 推荐用绝对路径,避免
${project_path}在某些插件中解析失败 - 如果用
SublimeCodeIntel,它的env和scan_extra_paths也得写在settings里,格式为:"SublimeCodeIntel": { "env": { "PYTHONPATH": "/path/to/venv/lib/python3.9/site-packages" } }
真正容易被忽略的是:所有项目级配置都依赖 .sublime-project 文件物理存在、路径拼写完全正确、且没有被插件动态覆盖——它不像 IDE 那样有“工作区上下文”,Sublime 的项目隔离是静态、显式、脆弱的,少一步就断链。











