rulers 是 sublime text 原生的每行字数视觉提示机制,仅绘制参考线而不修改代码;需在用户设置中以 json 数组格式配置如 "rulers": [79],推荐按 pep 8 在语法专属设置中为 python 设为 [79],并关闭 word_wrap 以确保准确判断行宽。

rulers 是 Sublime Text 唯一原生支持的“每行最大字数”视觉提示机制,它不修改代码、不强制换行、也不报错,只画一条参考线。想靠它真正规范代码长度,得配合格式化工具用。
怎么在用户设置里加 rulers
打开 Preferences → Settings,右侧是用户设置(User Settings),直接添加这一行(注意 JSON 格式):"rulers": [80]
保存后立刻生效——不需要重启,也不需要插件。
- 必须是 JSON 数组格式,写成
"rulers": 80或"rulers": "80"都无效 - 如果前面已有配置项,记得补上逗号,比如:
"font_size": 13,<br>"rulers": [80]
- 多个值如
[79, 120]会同时显示两条线,适合 Python + Shell 混合项目 - 改完没反应?先检查 JSON 是否合法(多逗号、少引号、中文标点都会让整块设置失效)
为什么 Python 文件要设 [79] 而不是 [80]
PEP 8 明确建议行宽限制为 79 字符(非 80),因为某些终端或 diff 工具会在行首/行尾额外占用 1 列。Sublime 的 rulers 计数从第 1 列开始,[79] 就是严格对齐 PEP 8 的第 79 个字符位置。
- 设
[80]看似整齐,但实际超了 1 字符;设[79]才是真合规 - 推荐走语法专属设置:Preferences → Settings – More → Syntax Specific – User,选中当前语言(如 Python),填
{"rulers": [79]} - 这样不会影响 Markdown、JSON 等其他文件,避免干扰
rulers 和 word_wrap 别混着用
开启 word_wrap(软换行)会让编辑器按窗口宽度或 wrap_width 自动折行,这会严重干扰你判断真实行宽——眼睛看到的是“折了”,但 linter 或格式化工具仍按单行算长度。
- 如果只想要标尺提醒,确保
"word_wrap": "auto"(默认值,等效于关闭软折) - 绝对不要同时设
"wrap_width": 80,否则标尺线和软折位置可能错位,反而误导 - 真正要截断长行,靠
black、prettier或 Sublime 插件(如 Wrap Plus),不是靠rulers
标尺线看不见?优先查主题和视图状态
Sublime 的标尺线颜色由当前主题或配色方案控制,不是设置项能直接改的。很多第三方主题把 guide 颜色设成透明或与背景同色,导致“开了却看不到”。
- 换回原生主题试一下:在设置里加
"theme": "Adaptive.sublime-theme" - 确认没开启
draw_indent_guides且缩进线太密,盖住了 ruler(可临时关掉对比) - 已打开的文件不会自动更新 rulers 设置,需重新加载(Ctrl+R)或切换语法再切回来
- 项目级设置(
.sublime-project)优先级高于用户设置,检查是否被覆盖
rulers 是轻量、稳定、无副作用的辅助手段,但它本身不解决“超长行”问题——只是告诉你“这儿该停了”。真正落地还得靠团队约定 + 格式化工具自动修正,标尺只是那个默默站在边上的提醒者。











