必须在preferences → settings右侧user settings中以"rulers": [79, 120]格式配置数组,数字代表从第1列起的字符位置,多个值用英文逗号分隔且需升序;常见错误如字符串、单数字或末尾逗号会导致json解析失败,标尺完全不显示。

怎么在用户设置里写多标尺配置
直接往 Preferences → Settings 右侧「User Settings」里加一行合法 JSON 就行,别碰左侧 Default。格式必须是 "rulers": [79, 120] 这种数组,数字代表字符列位置(从第 1 列起算),多个值用英文逗号分隔,升序排列。
常见错误现象:写了 "rulers": "80"(字符串)、"rulers": 80(单个数字)、"rulers": [80,](末尾多余逗号)——这三类都会导致整个 JSON 解析失败,标尺完全不显示,控制台(Ctrl + `)会报 Invalid settings in Packages/User/Preferences.sublime-settings。
- 只设一条线:
"rulers": [80] - Python 推荐双线:
"rulers": [79, 120](PEP 8 严格线 + 宽屏注释线) - 前端常用:
"rulers": [80, 100, 120](兼顾可读性与宽屏编辑)
为什么 Python 文件里标尺没出现
全局设了 "rulers": [79, 120],但打开 .py 文件却看不到线?大概率是语法专属设置覆盖了全局,或者当前文件没被识别为 Python。
检查状态栏右下角语言标识是否为 Python;如果不是,点它手动选「Python」。确认后,再打开 Preferences → Settings – More → Syntax Specific – User,看里面有没有别的 rulers 配置——比如写了 {"rulers": []} 或 {"rulers": [100]},这些会屏蔽全局设置。
- 语法级设置优先级高于全局,一旦存在就会生效
- 已打开的文件不会自动重载语法设置,需手动切一次语言(比如先切成 Plain Text 再切回 Python)
- 如果想让 Python 独享
[79],其他语言用[120],就得分别配语法专属和全局
标尺线看不见的四个真实原因
不是“没生效”,而是被掩盖或误判。Sublime 的 rulers 是纯视觉线,不报错、不弹窗,失效时往往静默无提示。
-
word_wrap开着且折行严重:长行被软折后,标尺仍钉在原始列,可能被挤出可视区域;关掉"word_wrap": true再验证 - 主题把标尺颜色设成透明:换回
Monokai或Default主题立刻能确认是否真没画出来 - 用了非等宽字体(如
Microsoft YaHei):中文和英文宽度不同,标尺视觉偏移,尤其混排时;换成Fira Code或JetBrains Mono更准 - 配置写进了
Python.sublime-settings但当前是 JS 文件:标尺只对匹配语法生效,别指望一个配置管所有语言
怎么配合格式化工具真正规范代码长度
标尺线只是参考线,它不拦你敲超长行,也不自动换行。靠它 alone 没法保证代码合规。
真正要落地,得组合使用:rulers 提供视觉锚点 + 格式化工具强制约束。例如 Python 项目配 Black,JS 项目配 Prettier,并在其配置里指定 line-length = 79 或 printWidth: 120。
-
rulers值建议和格式化工具的line-length保持一致,否则视觉提示和实际约束脱节 - 别同时开
"wrap_width": 80和word_wrap:这会让编辑器软折,反而干扰你判断真实行宽 - 项目级设置更灵活:在
.sublime-project里写"rulers": [88](Black 默认值),比全局硬编码更可持续
最常被忽略的是:标尺按逻辑列计数,制表符 \t 算 1 列,但实际占位取决于缩进设置;如果用混合空格+制表符,视觉对齐会失准。统一用空格缩进才能让标尺真正可靠。











