Sublime 的 rulers 是一条(或多条)按字符数定位的浅灰色垂直虚线,纯视觉参考,不干预编辑行为;常见失效原因是 JSON 语法错误,需用 JSONLint 验证,且其位置锚定逻辑列而非像素,与字体、缩放无关。

Sublime 的 rulers 是什么,不是什么
它就是一条(或多条)浅灰色垂直虚线,画在编辑器内容区右侧,位置按“字符数”算——第 80 个字符位置就画在那儿,不管你是空格、字母、中文还是制表符,都算 1 列。它不折行、不报错、不格式化、不干预保存,纯视觉参考线。
常见错误现象:设了 "rulers": [80] 却没看到线,90% 是 JSON 语法错误(比如末尾多逗号、引号用中文、括号不匹配),建议复制整段设置去 JSONLint 验证。
注意:Sublime Text 4+ 已移除 View → Ruler 菜单路径,别再找这个选项;也别指望它能高亮超长行——它只画线,不染色、不标红、不弹提示。
怎么加标尺线:改用户设置 or 语言专属设置
打开 Preferences → Settings,在右侧用户设置面板里加这一行:
"rulers": [80]
保存后立刻生效。想同时看两道参考线(比如 Python 严格守 79,但宽屏写注释时放宽到 120)?直接写:
"rulers": [79, 120]
针对特定语言单独设(推荐):打开 Preferences → Settings – More → Syntax Specific – User,选中当前文件类型(如 Python),然后填:
{ "rulers": [79] }
- 这样只有 .py 文件显示 79 列标尺,JS/HTML 文件不受影响
- 不同项目对宽度要求不同,用工作区级
.sublime-project设置更灵活 - 标尺颜色由 UI 主题决定,原生不支持改色;真要换色得靠插件(如
BracketHighlighter或自定义 CSS)
rulers 和 word_wrap 别混用
rulers 是提醒你“该换行了”,word_wrap 是让编辑器自动把长行视觉折成多行(不插入真实换行符)。两者逻辑不同,但可以共存。
如果只想靠标尺规范代码,别开 word_wrap;如果开了,记得关掉 "wrap_width": 80 —— 否则它会按窗口宽度或指定列强制软折,反而干扰你判断真实长度。
正确配合方式:
-
"word_wrap": "auto":默认行为,基本等于关闭软折(对源码文件) -
"word_wrap": true+"wrap_width": 80:强制在第 80 列软折,适合看日志或 Markdown,但会掩盖真实行宽问题 - 真正要规范代码,靠
rulers+ 格式化工具(如Black或Prettier)才靠谱
为什么标尺线常被误以为“失效”
最常被忽略的一点:标尺按“逻辑列”计算,和字体渲染无关。等宽字体下对齐最准,但如果你用的是非等宽中文字体(比如某些 UI 主题默认字体),中文和英文看起来错位,其实是字体本身宽度不一致导致的——标尺没算错,只是你眼睛被字体骗了。
另一个隐形坑:标尺不会随缩放比例移动。放大字体后,第 80 列物理位置变远,但虚线还在原来像素位置,视觉上像“偏了”。这不是 bug,是设计如此——它始终锚定字符计数,而非屏幕像素。
所以别纠结它“准不准”,它本意就是给你一个稳定、可复现的字符数锚点。要不要换行、在哪断开,还得你自己判断逻辑边界。










