Sublime Text垂直标尺需在Preferences → Settings右侧用户设置中添加"rulers": [80]数组配置,保存即生效;它仅是按字符数定位的浅灰虚线,不干预编辑,非等宽字体下视觉可能错位。

Sublime Text 的垂直标尺不是“开启”或“关闭”的开关功能,它只是一条(或多条)按字符数定位的浅灰色虚线,写对 rulers 配置就立刻出现,写错或放错位置就完全不显示——没有中间状态。
怎么在用户设置里加 rulers 配置
打开 Preferences → Settings,右侧是 User Settings,直接在顶层 JSON 对象里加一行:
"rulers": [80]
注意这几点:
-
rulers必须是数组,哪怕只设一个值也要用方括号:[80],不能写成"80"或80 - 必须加在 User Settings 里,不是 Default,也不是项目文件或语法专属设置(除非你明确想局部生效)
- 保存后立即生效,不用重启、不用刷新、不用切换文件
- 如果没反应,大概率是 JSON 语法错误——比如多了一个逗号、少了一个引号,复制整段去 JSONLint 验证一下
为什么标尺线没显示?常见失效原因
标尺不出现,90% 是配置落点或环境干扰问题:
- 改了左侧 Default Settings:它只读,改了也无效
- 当前主题或配色方案把标尺线颜色压得太淡(比如和背景接近),换回
Monokai主题快速验证 - 装了某些插件(如
Origami、TrailingSpaces)意外覆盖了 rulers 渲染逻辑,临时禁用插件试试 - 字体不是等宽字体:
rulers按字符数算位置,非等宽字体下中文/英文宽度不一致,视觉上“歪了”——这不是标尺错了,是你眼睛被字体骗了;查当前字体:sublime.active_window().active_view().settings().get('font_face')
怎么按语言或项目单独设标尺
全局 rulers 不够灵活,Python 常用 79,Go 常用 120,JSON 可能允许更宽。这时要用优先级更高的配置方式:
- 语法专属设置:打开
Preferences → Settings – Syntax Specific,确保右下角状态栏显示的是目标语言(如Python),然后填:{ "rulers": [79] } - 项目专属设置:在项目文件
.sublime-project的"settings"字段里加:"rulers": [120]
- 优先级顺序是:语法设置 > 项目设置 > 全局用户设置;但已打开的文件不会自动更新,需重新加载或切换语法再切回来
标尺只是参考线,别指望它自动截断或高亮
rulers 就是一条纯视觉锚点,它:
- 不触发任何事件,不报错,不阻止输入,不干预保存
- 不和
word_wrap耦合——开了"word_wrap": true+"wrap_width": 80会软折行,反而掩盖真实长度,建议关掉word_wrap专用于代码规范场景 - 不替代格式化工具:真要强制守规矩,得配
Black(Python)、Prettier(JS)这类保存时自动折行的工具,rulers在这时变成校验线
最容易被忽略的一点:标尺数值是“逻辑列”,不是像素,也不随缩放变化;它只认字符个数,空格、制表符、中文、emoji 全都算 1 列——这点决定了它在等宽字体下才真正可靠。











