必须在Preferences → Settings – User右侧面板以JSON数组格式写"rulers": [79],不可写字符串或单数字;多标尺用逗号分隔如[79, 120];保存即生效,需禁用word_wrap并优先使用语法专属设置确保Python项目严格符合PEP 8。

怎么在 User Settings 里正确写 rulers?
rulers 是纯 JSON 数组,必须写在 Preferences → Settings 的右侧「User」面板里,不是 Default,也不是某个语法专属设置。常见错误是写成字符串或单个数字:
- ✅ 正确:
"rulers": [79] - ❌ 错误:
"rulers": "79"、"rulers": 79、"rulers": [79,](末尾逗号会解析失败)
多个标尺用逗号分隔:"rulers": [79, 120],表示第 79 列和第 120 列各画一条线。保存后立即生效,不用重启。
为什么 Python 要设 [79] 而不是 [80]?
PEP 8 明确写的是「行宽不超过 79 字符」,不是 80。Sublime 的列计数从第 1 列开始,[79] 对齐的是第 79 个字符的右侧边界——也就是你敲完第 79 个字符时,光标刚好在标尺线左侧。设成 [80] 表面整齐,实际已超规 1 字符,flake8 或 black 报 E501 line too long 时你会困惑“明明没超啊”。
更稳妥的做法是走语法专属配置:右下角点「Python」→ Preferences → Settings – Syntax Specific – User,填入:{"rulers": [79]}。这样 Markdown、JSON 文件不受影响。
rulers 和 word_wrap 为什么不能共存?
word_wrap 开启后,编辑器会按窗口宽度或 wrap_width 自动软换行,导致你看到的“行”和真实代码行不一致。比如一行 120 字符被软折成两行显示,但 linter 仍把它当单行报错,rulers 也只在原始第 79 列画线,视觉完全错位。
务必确认:"word_wrap": "auto"(默认值,等效于关闭),且不要配 "wrap_width"。如果项目真需要软换行,关掉 rulers,别硬凑。
标尺线不显示?先查这三处
- 改错了文件:打开
Preferences.sublime-settings(User),不是 Default,也不是 Python.sublime-settings
- 主题把标尺颜色设成透明或与背景同色:临时切回
Adaptive 主题验证
- 插件干扰:比如
TrailingSpaces 或某些 UI 增强插件会禁用 rulers 渲染,禁用插件再试
Preferences.sublime-settings(User),不是 Default,也不是 Python.sublime-settings Adaptive 主题验证 TrailingSpaces 或某些 UI 增强插件会禁用 rulers 渲染,禁用插件再试 标尺线本身不感知字体宽度、制表符展开或连字效果。用非等宽字体、混用 \t 和空格、或开了连字(如 Fira Code),都会让视觉对齐“看起来偏了”——这不是配置问题,是渲染限制。


















