缩进参考线需同时启用 draw_indent_guides 并设置 indent_guide_options 为 ["draw_normal", "draw_active"] 才能完整显示所有层级;仅设 draw_indent_guides: true 无效,因 sublime 默认只渲染当前层级。

缩进参考线默认不显示,必须同时启用 draw_indent_guides 并配置 indent_guide_options 为 ["draw_normal", "draw_active"],否则你看到的只是光标行上一根断掉的虚线——这不是 Bug,是 Sublime 的设计逻辑。
为什么只设 draw_indent_guides: true 没用
Sublime 默认只渲染“当前缩进层级”的引导线,视觉上像几根孤立短线,看不出嵌套结构。真正让所有层级都画线,必须补上 indent_guide_options,且值必须是合法数组:
-
"indent_guide_options": ["draw_normal", "draw_active"]是稳定显示的最小组合:“draw_normal”画全部层级,“draw_active”高亮当前行所在层 - 写成字符串
"draw_normal, draw_active"、漏方括号、或用了非法值如["solid"],Sublime 会静默忽略整行 - 改完保存设置后,已打开的文件不会立刻重绘——切换 Tab 再切回来,或按
Ctrl+R重载文件
Python 文件里没线?优先排查这三件事
缩进参考线在 Python 中最容易“消失”,不是设置无效,而是被更高优先级规则压制:
- 右下角状态栏看语法名:若显示
Plain Text而非Python,说明语法绑定失败;按Ctrl+Shift+P输入Set Syntax: Python切过去再试 - 检查项目根目录是否存在
.editorconfig:里面若有indent_style = tab或indent_size = 2,EditorConfig 插件会直接覆盖你的用户设置 - 执行
View → Indentation → Convert Indentation to Spaces:混用 Tab 和空格时,Sublime 只对“被识别为同一缩进层级”的行画线;某行突变成\t,后续参考线就断了
rulers 和 indent_guide_options 是两套独立配置
很多人搜“缩进线”却去配 rulers,结果发现线没对齐缩进——因为 rulers 是固定列数的参考线(比如第 79 列画一条虚线),和缩进层级完全无关:
-
rulers是整数数组,例如:"rulers": [79, 120],必须放在用户设置顶层 JSON 中 -
indent_guide_options是字符串数组,例如:"indent_guide_options": ["draw_normal", "draw_active"],同样在用户设置顶层,与rulers并列,不能嵌套 - 二者可共存,但彼此不联动:你设了
rulers不会让缩进线自动贴过去,缩进线也不会响应rulers位置变化
缩进线颜色太淡?别在 settings.json 里瞎调
draw_indent_guides 和 indent_guide_options 只控制“画不画”,不控制“画成啥样”。调颜色必须改配色方案文件(.sublime-color-scheme)中的 guide 规则:
- 打开命令面板,输入
Color Scheme→ 选Convert Color Scheme to JSON - 在
"rules"数组中添加或修改:{"scope":"guide","foreground":"#a0a0a0"} - 注意:有些主题把
guide写成gutterForeground或未显式定义,需手动补全;foreground值支持十六进制、RGB、HSL,不支持命名色(如"red")
真正容易被忽略的是 EditorConfig 和 detect_indentation 的压制作用——它们不报错、不提示,只是让缩进参考线“看起来没开”,其实开关早开了,只是被绕过了。











