Sublime Text 通过设置 "rulers" 数组配置垂直参考线,如 "rulers": [79, 99],单位为字符列数,纯视觉辅助,不干预编辑或校验;需检查主题颜色、高亮干扰及窗格焦点以确保显示正常。

Sublime 怎么设置每行长度提示(Ruler)?
Sublime Text 本身不叫“长度提示”,它叫 rulers,是垂直参考线,用来视觉上标记代码行宽临界点(比如 PEP 8 推荐的 79 或 99 字符)。设置它不依赖插件,直接改配置就行。
关键点:ruler 是纯显示辅助,不影响编辑、不自动换行、也不校验代码——它只是条线。
- 打开
Preferences → Settings(左右双栏配置) - 在右侧用户配置(右栏)中添加或修改
"rulers"项 - 值必须是数字数组,单位是「列数(字符数)」,例如:
"rulers": [79, 99]
- 保存后立即生效,无需重启
为什么设置了 rulers 却没显示?常见原因
最常踩的坑不是配置错,而是被其他设置或 UI 状态掩盖了:
-
"draw_white_space"设为"none"不影响 ruler,但若启用了"highlight_line"且当前行刚好在 ruler 位置,高亮色可能盖住 ruler 线(尤其浅色主题下) - 主题颜色冲突:某些自定义主题把 ruler 颜色设成透明或与背景同色,可在主题文件里查
ruler或临时换回默认主题验证 - 缩放比例过高(如 150%+)时,ruler 线可能变虚或像素级偏移,但通常仍可见
- 多窗格(split view)下,ruler 只作用于当前活动视图,其他窗格需单独设置(其实共用同一份配置,但需确保焦点在对应窗格再观察)
如何让 ruler 随项目/语言动态变化?
全局 rulers 是静态的,但 Sublime 支持按语法或文件夹做「项目级覆盖」。比如 Python 项目想用 79,Go 项目用 120:
- 对单个文件:右键 →
Set Syntax → Python,然后Preferences → Settings – Syntax Specific,填"rulers": [79]
- 对整个项目:用
Project → Edit Project,在"settings"下加"rulers": [120]
;若需按子目录区分,得靠插件(如EditorConfig),但原生不支持路径条件 - 注意:语法专属设置优先级高于项目设置,项目设置又高于全局设置
和 EditorConfig 或 linter 的 ruler 提示冲突吗?
不冲突,但职责完全不同。ruler 是纯 UI 参考线;而 EditorConfig 的 max_line_length 或 linter(如 pycodestyle)报的 E501 line too long 是规则检查结果。
- ruler 不会触发任何警告,也不影响保存行为
- 如果你希望「超长自动标红」或「保存时报错」,得装
SublimeLinter+ 对应 linter 插件,并确保其配置里的max-line-length和 ruler 数值一致,否则视觉和规则就脱节了 - 有些插件(如
TrailingSpaces)会把 ruler 当作清理边界,但那是插件自己的逻辑,非 Sublime 原生行为
ruler 看似简单,但真正用好得盯住三个地方:配置写对位置、主题没吃掉颜色、以及别把它当成代码规范执行器——它只是一条线,要不要守,还得靠人或别的工具来管。

















