Sublime Text 的 word_wrap 默认仅为视口软换行,不识别单词边界;启用智能换行需同时设 word_wrap: true 和 wrap_width(如80),使其按空格、标点等边界折行,但对中文、URL等支持有限。

Sublime Text 的 word_wrap 是什么,它默认不智能?
Sublime Text 默认的 word_wrap 只是“软换行”——即按视口宽度折行,但不管单词边界,容易把 superlongvariable 截成两行显示。这不是排版意义上的“智能换行”,它不识别空格、连字符或 Unicode 字符边界。
启用基于单词边界的换行:用 wrap_width + word_wrap
真正避免单词截断,得靠 wrap_width 配合 word_wrap。Sublime 不会自动计算“合适宽度”,必须显式设一个值(单位:字符数),它才会在空格/制表符/标点处折行。
-
wrap_width设为0:禁用硬换行(退化为默认软换行) -
wrap_width设为正整数(如80):启用基于单词边界的硬换行 -
word_wrap必须为true,否则wrap_width无效
推荐做法:打开 Preferences → Settings,在右侧用户设置中加入:
{
"word_wrap": true,
"wrap_width": 80
}
中文、连字符、URL 等特殊场景怎么处理?
Sublime 的 wrap_width 对纯英文空格分隔效果最好;对中文基本无效(因为中文无空格分隔),对 URL 或带下划线的标识符也常在不该断的地方断开。
- 中文文档建议关掉
wrap_width,改用word_wrap: true+ 拉宽窗口,依赖软换行 - 要断开长 URL,可临时插入零宽空格(
)或使用插件Wrap Plus - 连字符(
-)默认不作为断点,但 Sublime 会优先在它后面断——这点比很多编辑器强
为什么改了设置没生效?常见卡点
改完 Preferences → Settings 后没反应,大概率是以下之一:
- 文件本身启用了「软换行强制关闭」:右键编辑区 → 取消勾选
Word Wrap(该菜单项会覆盖全局设置) - 当前语法高亮规则干扰:某些语法定义(如
Plain Text)可能重置了wrap_width,可在View → Word Wrap Column手动设一次测试 - 设置了
auto_indent或detect_indentation导致换行缩进异常,但这不影响断点逻辑
最稳妥验证方式:新建无语法标记的 Plain Text 文件,粘贴一长串含空格的英文,再调 wrap_width 观察是否只在空格处折行。
记住:Sublime 没有“自动适配字体宽度”的智能换行,所有“智能”都依赖你给的 wrap_width 值和文本本身的分隔符质量。










