sublime text 的 rulers 仅显示字符列数参考线,不强制换行;需在用户设置中添加 "rulers": [80],确保使用等宽字体、正确配置位置及主题兼容性。

Sublime Text 本身不提供“强制换行”或“字符数限制”功能,所谓“每行字符限制”只是通过 rulers 显示视觉参考线,提醒你别写太长;它不拦截输入、不自动折行、也不影响保存或格式化工具。
怎么在用户设置里加 rulers 显示参考线
打开 Preferences → Settings,只改右侧「User」面板(左侧 Default 不要碰);在 JSON 对象里加这一行:
"rulers": [80]
保存后立刻生效,无需重启。注意三点:
-
rulers值必须是数字数组,不能写成字符串:"rulers": "80"或"rulers": [80,](末尾逗号在 Sublime 的 JSON 解析中可能报错)都无效 - 单位是「字符列数」,从第 1 列开始计,不是像素,也不是从 0 开始
- 如果想同时标两处(比如 PEP8 要求 79,但注释放宽到 120),写成
"rulers": [79, 120]
为什么加了 rulers 却看不到线?常见失效原因
标尺不显示,90% 是配置没落对地方或被覆盖。检查以下几处:
- 确认改的是
Preferences.sublime-settings (User),不是 Default,也不是某个语法专属设置(如Python.sublime-settings) - 某些主题(如 ayu、Material Theme)把标尺线颜色设成透明或和背景色一致,换回
Adaptive.sublime-theme或Default.sublime-theme快速验证 - 插件(如 TrailingSpaces、Origami)可能禁用 rulers 渲染,临时禁用插件试试
- 当前字体不是等宽字体——
rulers按字符数计算,非等宽字体(如 Helvetica)会导致位置严重偏移;运行sublime.active_window().active_view().settings().get('font_face')查看当前字体,确保是Fira Code、JetBrains Mono等等宽字体
按项目或按语言单独设 rulers 的优先级规则
全局用户设置只是兜底方案,真要适配不同规范,得靠更高优先级的配置:
- 项目级:打开
Project → Edit Project,在settings字段里加"rulers": [100],只对该项目所有文件生效 - 语法级:先打开一个 Python 文件,再点
Preferences → Settings – Syntax Specific,右侧加"rulers": [79],这样只对.py文件起作用 - 优先级顺序:语法设置 > 项目设置 > 用户设置;但所有设置都只对新打开的文件实时生效,已打开的文件需重新加载或切换语法再切回来
rulers 和 word_wrap、draw_white_space 配合使用更实用
参考线只是辅助,真正提升可读性还得搭配其他设置:
-
"word_wrap": "auto":开启自动换行,让超长行在编辑器内折行显示(不影响实际换行符) -
"draw_white_space": "all":显示空格、制表符和行尾空白,配合"show_line_endings": true还能显示¶换行符,避免隐形缩进问题 -
"highlight_line": true:高亮当前行,配合rulers更容易判断光标是否已超出建议宽度
最常被忽略的是:标尺线位置不准时,第一反应不该调配置,而是查字体——只要用了非等宽字体,数值再准也白搭。











