sublime text 通过 rulers 设置视觉行宽标尺,如 "rulers": [80] 在第80列显示浅灰虚线,仅作提示不改变文本;支持多值如 [79, 120],可按语言语法专属配置,且需写入 settings – user 面板、确保 json 格式正确。

怎么用 rulers 设置视觉行宽标尺(最常用)
Sublime Text 本身不提供“硬性截断”或“染色超长行”的功能,但通过 rulers 可以在指定列位置画出一条浅灰色虚线,作为代码宽度的视觉参考——这是官方支持、零依赖、最稳定的方式。
- 打开 Preferences → Settings – User,在右侧 JSON 中添加:
{ "rulers": [80] } - 保存后,编辑器右侧就会出现一条对齐第 80 列的竖线;可设多个值,比如
[79, 120]同时显示两条 - Python 推荐用 79,JS/TS 常用 100 或 120,不同语言规范差异大,建议按项目约定来
- 注意:
rulers不影响实际文本,也不改变换行行为,仅作提示
要不要开启自动换行?word_wrap 和 wrap_width 的区别
自动换行是纯显示层面的折行(不插入 \n),和 rulers 是两回事。它适合看长日志、Markdown 或注释,但**不推荐用于代码正文**——因为会破坏缩进对齐、干扰括号匹配、让 Git diff 更难读。
- 启用自动换行:
"word_wrap": "auto"(默认就是 auto,可省略) - 控制折行位置:
"wrap_width": 80—— 注意这个单位是字符数,不是像素(旧版文档误传为像素,实测 2026 年最新版已按字符处理) -
"wrap_width": 0表示禁用自动换行;设为正整数才生效 - 和
rulers混用时,二者互不影响:标尺仍画在第 80 列,而换行发生在第 80 字符之后的空白处(非强制截断)
如何让标尺只在特定语言中生效?
团队协作中,Python 文件要守 79,CSS 却可能允许 120,全局统一 rulers 反而碍事。Sublime 支持语法专属设置,优先级高于用户全局设置。
- 打开菜单:Preferences → Settings – More → Syntax Specific – User
- 选择当前文件类型(如 Python),右侧会自动打开对应语言的配置文件
- 填入:
{ "rulers": [79] } - 保存后,该设置只对 .py 文件生效;其他语言不受影响
- 同理,可在 JavaScript 的语法设置里写
"rulers": [100],完全隔离
为什么标尺没显示?常见失效原因
标尺看似简单,但实际配置后不出现,90% 是这几个问题:
- 误改了左侧的 Default 配置(只读)——所有自定义必须写在右侧 User 面板
- JSON 格式错误:末尾多逗号、引号用中文、漏大括号,Sublime 会静默忽略整个配置项
- 状态栏未开启:View → Show Status Bar(虽然不影响 rulers,但关了就看不到当前列数,调试困难)
- 用了某些 UI 主题(如 Ayu、Material Theme),它们可能覆盖了 rulers 样式——此时需手动编辑主题的
Widget.sublime-settings,或换回默认主题验证
标尺本身没有颜色开关,原生不支持高亮超长行;如果真需要染色,得靠插件(如 TrailingSpaces + 自定义高亮规则),但那已是另一层复杂度了。










