Sublime Text无法自动按字符数硬换行,仅支持通过"word_wrap": true和"wrap_width": 80实现80列视觉折行,不改变文件内容;真正插入换行符需手动触发wrap_lines命令或使用插件。

Sublime Text 本身没有“每行字数限制”这个功能,它不修改文件内容、也不插入真实换行符;所谓“限制”,只是视觉折行(软换行),靠 word_wrap 和 wrap_width 配合实现。关键在于:你想要的是辅助阅读的显示折行,还是真正把长行切开成多行(硬换行)?两者完全不是一回事。
怎么让长行在 80 列处视觉折行(只改显示,不改文件)
这是最常见需求,比如写 Markdown 或日志时避免横向滚动。必须同时满足两个条件:
-
word_wrap设为true(不能是字符串"true"或"auto",后者在新版中已基本失效) -
wrap_width设为具体数字,如80(设为0表示按窗口宽度折行) - 这两项都得加在用户设置(
Preferences → Settings右侧)的顶层 JSON 对象里,且格式合法(逗号、引号、括号全对) - 改完保存,已打开的文件不会自动刷新效果——切个 Tab 或重新打开才生效
示例用户设置片段:
{
"word_wrap": true,
"wrap_width": 80
}
注意:wrap_width 对中文基本无效(无空格分隔),此时建议设为 0,靠拉宽窗口+软换行阅读更实际。
为什么开了 word_wrap 却没反应?常见失效点
不是功能坏了,而是配置被静默忽略。高频原因有:
- 误改了左侧「默认设置」(只读),而不是右侧「用户设置」
-
word_wrap写成"word_wrap": "true"(字符串)或"word_wrap": "auto"(新版不认) - JSON 格式错误:前一行少逗号、多逗号、引号不匹配,整个用户设置块会失效
- 右下角状态栏显示
Wrap: Off,点它可强制切换——这个开关优先级高于配置,会覆盖word_wrap设置 - 文件大于几十 MB 时,Sublime 可能自动禁用
word_wrap保性能,需手动按Alt+Z重开
怎么只对 Markdown/纯文本启用 80 列折行,而 Python 文件保持不折?
全局设 wrap_width: 80 会污染代码文件,PEP8 要求的是逻辑行长度,不是显示折行。正确做法是语法专属配置:
- 先打开一个
.md文件 - 菜单 →
Preferences → Settings – Syntax Specific - 右侧添加:
{"word_wrap": true, "wrap_width": 80} - 保存后,所有 Markdown 文件都会按此规则生效;Python、JS 等文件完全不受影响
同理,若想对 Python 文件启用 79 列参考线(非折行),应在同位置加 "rulers": [79],而非动 wrap_width。
怎么真正把超长行切成多行(插入 \n)?
word_wrap 和 wrap_width 做不到这点。它们只改变显示,复制粘贴、Git 提交、终端运行时仍是原始单行。
- 手动切:选中长行 →
Ctrl+Shift+P(命令面板)→ 输入wrap_lines→ 回车(默认无快捷键,必须手动调) - 插件方案:安装
Wrap Plus,支持正则识别标点/空格处智能断行 - 正则替换:用
Find → Replace,查找^(.{80})(?=\s),替换为$1\n(需谨慎,易切错位置)
真正容易被忽略的是:软换行和硬换行目的完全不同。前者是阅读辅助,后者是格式整理——混用会导致 Markdown 渲染异常、日志解析失败、Git diff 失真。别指望 wrap_width 替代代码格式化工具。











