必须同时设置"draw_indent_guides": true和"indent_guide_options": ["draw_normal", "draw_active"],且确保语法识别正确、缩进一致、无editorconfig冲突、主题颜色可见,已打开文件需切换tab或按方向键刷新。

draw_indent_guides设为true但没线?必须配对indent_guide_options
只写 "draw_indent_guides": true 不够,Sublime 会默认只在光标所在缩进层级画一根虚线,嵌套结构里其他层级的线全不显示。这不是 Bug,是设计行为。
真正让所有缩进层级都画线,得补上:"indent_guide_options": ["draw_normal", "draw_active"]。注意三点:
- 值必须是数组,不能写成字符串
"draw_normal, draw_active" - 不能漏掉方括号,
["draw_normal"]也行,但缺了"draw_active"就不会高亮当前行所在层 - 这两项必须同时出现在用户设置(Preferences → Settings – User)的顶层 JSON 里,和
rulers并列,不能嵌套在别的字段下
开了还是没线?先查右下角状态栏和语法识别
最常被忽略的不是配置写错,而是 Sublime 根本没把当前文件当成“可渲染缩进线”的类型。
看右下角:
- 若显示
Plain Text而非Python或JavaScript,说明语法绑定失败——按Ctrl+Shift+P输入Set Syntax: Plain Text切过去再试,如果这时线出来了,就是语法包或插件的问题 - 若显示
Tab Width: 4但旁边没写Spaces,实际可能用了 Tab;混用空格和 Tab 会导致引导线断续或跳列 - 若显示
Indent: auto或空白,说明detect_indentation没生效,手动执行Convert Indentation to Spaces再观察
EditorConfig 或主题颜色导致静默失效
配置明明写了,控制台也没报错,但线就是不出现——大概率被外部规则压制了。
优先排查:
- 项目根目录有
.editorconfig文件?里面若含indent_style = tab或indent_size = 2,会直接覆盖你的draw_indent_guides行为 - 当前主题把
guide类颜色设成透明(比如某些 Dracula 变体)——临时切到Monokai主题验证是否真消失 -
draw_white_space设为"all"后能看到→和·?如果连制表符都不显示,说明文件里压根没真实 Tab,或translate_tabs_to_spaces是true,此时缩进线依赖的是空格宽度,而非字符本身
已打开文件不刷新?不用重启,只需切换 Tab
改完设置保存后,新打开的文件会立即生效,但已打开的文件不会自动重绘缩进线。
触发重绘最轻量的方式:
- 切换到另一个 Tab,再切回来
- 或者按一下方向键(哪怕光标没动),Sublime 就会重新计算并绘制引导线
- 不需要重启、不用关文件、也不用强制 reload —— 这个机制对大文件尤其友好
真正容易被卡住的地方不在配置本身,而在缩进一致性:只要一行用了 Tab、下一行用 4 个空格,indent_guide_options 就会“失焦”,线就断了。它不管你怎么想,只认实际空白字符的物理宽度。











