sublime 的代码折叠、当前行高亮和缩进引导线均依赖准确的语法识别:若右下角显示 plain text 或 scope 缺少 meta. 前缀,三者将同时失效;需确保 python 语法正确、缩进统一、配色方案含 linehighlight 规则。

Sublime 的代码折叠和当前行高亮是两个独立功能,各自依赖不同配置项,且都容易因语法识别失败或配色方案缺失规则而“看似开了实则无效”。
Ctrl+K Ctrl+1 只折 import 和全局变量,不碰 class/def 怎么办
这取决于 Python 语法文件中 import 行与 class 行的 scope 嵌套层级是否真正分离:
- 光标放在
import行,按Ctrl+Shift+P→ 输入Developer: Show Scope Name,确认输出含source.python且无meta.前缀 - 再把光标移到
class行,同样查看 scope;若显示meta.class.python(比 import 多一层),说明层级正常,Ctrl+K Ctrl+1就不会折叠它 - 若两者都只显示
source.python,说明语法高亮异常——可能是用了阉割版 Python 插件,或文件被识别为Plain Text(右下角不是Python) - 缩进混用空格和 Tab 也会导致 Sublime 放弃层级计算,此时需统一为 4 空格或设
"detect_indentation": true
开了 highlight_line 却没高亮,常见原因在哪
"highlight_line": true 只是开关,真正画背景色的是配色方案里的 lineHighlight 规则:
- 打开
Preferences → Color Scheme,记下当前方案名(如Monokai.sublime-color-scheme) - 用
PackageResourceViewer打开该文件,搜索lineHighlight;若找不到,说明主题未定义该规则,即使设置开启也无效 - 找到后修改
"background"值,推荐用hsla(0, 0%, 90%, 0.2)这类带 alpha 的格式,避免覆盖行号文字 - UI 主题(如
Adaptive)可能覆盖高亮背景,此时需检查是否启用了自定义 CSS 或插件干扰
缩进引导线(“折叠线”)不显示,别只查 draw_indent_guides
这个选项只是“要不要画”,但能不能画出来,取决于 Sublime 是否能正确解析缩进结构:
- 确保已启用
"draw_indent_guides": true和"indent_guide_options": ["draw_normal", "draw_active"] - 检查
"tab_width"是否为正整数(如2或4),0或负值会让引导线彻底消失 - 若文件缩进混用空格与 Tab,Sublime 会判定“结构不连续”,跳过绘制;可用
View → Indentation → Convert Indentation to Spaces统一 - 该功能与代码折叠完全无关——关掉所有折叠也不会影响引导线显示
真正容易被忽略的是:所有这些视觉优化都建立在「语法识别准确」基础上。一旦右下角显示 Plain Text,或 Developer: Show Scope Name 返回的 scope 链里缺少 meta. 前缀,折叠、高亮、引导线都会集体失效——这不是设置问题,而是 Sublime 根本没把这段文本当代码看。











