rulers 是 Sublime 按字符列数绘制垂直参考线的唯一机制,仅视觉提示、不干预编辑;需在 User 设置中以合法 JSON 数组格式配置,如 "rulers": [80],并注意文件位置、插件干扰、主题颜色、字体等影响显示的因素。

rulers 是 Sublime 唯一能按字符列数画垂直参考线的机制,不是“开关”也不是“限制”,它只画线、不干预编辑、不报错、不换行——设了 [80],就在第 80 个字符位置画一条虚线,仅此而已。
怎么在用户设置里正确写 rulers
打开 Preferences → Settings,改右侧「User」面板(不是左边 Default),确保 JSON 格式合法:
-
rulers必须是数组,哪怕只设一个值也要写成[80],不能写成"80"或80 - 多个值用逗号分隔:
[79, 120],末尾不能有逗号([79, 120,]会解析失败) - 引号必须是英文双引号,不能用中文引号或单引号
- 如果已有其他配置(比如
"tab_size": 4),把"rulers": [79]合并进去,别覆盖整块对象
为什么标尺没显示?先查这三处
90% 的“不生效”问题出在这几个地方:
- 改错了文件:确认你编辑的是 Preferences.sublime-settings (User),不是 Default,也不是某个语法专用设置(如 Python.sublime-settings)
- 插件干扰:某些插件(比如 TrailingSpaces、Origami)会禁用 rulers 渲染,临时禁用插件试试
- 主题颜色太淡:标尺默认是浅灰虚线,部分深色主题会让它和背景色接近甚至完全隐形;切回
Adaptive或Monokai主题快速验证
不同场景下该在哪配 rulers
全局、项目、语法三级配置优先级不同,选错位置就白配:
- 想全项目统一:在
.sublime-project文件的"settings"下加"rulers": [79] - 只想对 Python 文件生效:右下角点语言名 → Settings – Syntax Specific → 写
"rulers": [79](PEP 8 推荐 79 字符) - 语法级设置优先级最高,但只对新打开或重新加载的文件生效;已打开的文件需手动 右键 → Revert 或切换语法再切回来
标尺不准?大概率是字体或缩进惹的祸
Sublime 的 rulers 按「逻辑字符列」计算,不是像素,所以:
- 必须用等宽字体:非等宽字体(如 Helvetica)会导致中文/英文宽度不一致,标尺位置“看起来”偏移。查当前字体用控制台命令:
sublime.active_window().active_view().settings().get('font_face') - Tab 和空格混用会偏差:开启
"translate_tabs_to_spaces": true,否则一个 Tab 可能被算作 1 列(而非 4 空格),导致标尺与预期错位 -
indent_guide_options和rulers无关:前者响应缩进层级,后者响应绝对列数;别指望靠调整缩进设置让标尺对齐第 80 列
真正麻烦的点在于:rulers 是纯视觉锚点,它不校验、不提示、不格式化——想靠它规范代码,得搭配 Black、Prettier 或 editorconfig 才行。单独设了 [80],只是给你一条线看,而不是一道墙拦着你。











