sublime text 无真正每行字数限制功能,仅提供 rulers(垂直标尺线)作视觉提示或 word_wrap + wrap_width 实现软换行;rulers 必须在用户设置中以 json 数组格式配置如 "rulers": [79],推荐 python 项目设为 79 以严格符合 pep 8 规范,且需配合语法专属设置避免干扰其他文件类型。

Sublime Text 没有真正的“每行字数限制”功能,它既不自动截断、也不插入换行符;所谓“限制”,只有两种互不兼容的视觉辅助:一种是 rulers(垂直标尺线),纯提示;另一种是 word_wrap + wrap_width(软换行),只改显示。选错机制,配置就白调。
怎么加垂直标尺线(rulers)?
rulers 是 Sublime 原生支持的视觉参考线,仅画线、不干预代码,适合配合 linter 或格式化工具使用。
- 打开 Preferences → Settings,在右侧用户设置(User Settings)中添加:
"rulers": [79](Python 推荐用 79,不是 80) - 必须是 JSON 数组格式:
[79]有效,79或"79"无效 - 多个值如
[79, 120]会同时显示两条线,适合混合项目 - 保存即生效,无需重启;若不显示,先看控制台(
Ctrl+`)是否有Invalid settings in …报错 - 主题可能隐藏标尺线(比如设为透明色),可临时换回默认主题验证
为什么 Python 要设 79 而不是 80?
PEP 8 明确要求“行宽不超过 79 字符”,因为部分终端、diff 工具会在行首/行尾额外占 1 列。Sublime 的 rulers 从第 1 列开始计数,[79] 才是对齐第 79 个字符位置的严格实现。
- 设
[80]表面整齐,实际已超规 1 字符 - 推荐走语法专属设置:右下角状态栏切换到 Python → Preferences → Settings – Syntax Specific – User → 填
{"rulers": [79]},避免干扰 Markdown、JSON 等文件 -
rulers不识别制表符(\t)展开宽度,开启"translate_tabs_to_spaces": true后对齐更稳定
怎么让长行真正“折起来”看?(word_wrap + wrap_width)
这不是限制,而是软换行(soft wrap):仅改变显示方式,文件内容完全不变。适用于 Markdown、日志等非代码文件。
- 必须同时设置两项:
"word_wrap": true(开关)和"wrap_width": 80(宽度) -
"word_wrap": "auto"或"true"字符串均无效;wrap_width设为 0 表示按窗口宽度折行 - 改完后已打开的文件不会实时刷新,需切换 Tab 或重新加载
- 中文文本因无空格分隔,
wrap_width几乎无效,建议设为 0 改用拉宽窗口阅读 - 右下角状态栏显示 Wrap: Off?点它手动打开——这个操作会覆盖所有配置
想让长行被“切开”成多行?得手动或靠插件
Sublime 不提供后台监听式自动硬换行。真正插入 \n 需主动触发命令。
- 先设
"wrap_width": 80(供命令读取) - 全选文本后按
Ctrl+Shift+Q(Windows/Linux)或Cmd+Shift+Q(macOS)执行wrap_lines - 该命令优先在空格、连字符、斜杠等处断行,不会强行切单词
- 没选中时作用于全文;已选中则只处理选区
- 如需高频使用,可绑定快捷键或安装 Wrap Plus 插件增强断点逻辑
标尺线位置按“显示列”计算,和字体连字、全角字符、制表符展开行为都有关;同一数值在不同文件里看起来“偏移”,往往不是配置错了,而是这些底层渲染细节在起作用。











