必须设 word_wrap 为 true(布尔值,非字符串)且 wrap_width 为 0 才实现窗口自适应软换行;wrap_width=80 仅对英文空格分词有效,中文、URL、下划线变量名基本不折;换行是纯显示层行为,不改变文件内容。

必须设 word_wrap 为 true,且不能写成字符串;wrap_width 设为 0 才能按窗口自适应软换行,设成 80 只对英文分词有效,中文、URL、下划线变量名基本不折。
为什么改了用户配置还是不换行?
Sublime 的换行开关优先级是:视图设置 > 语法专属设置 > 用户设置 > 默认设置。你改了 Preferences → Settings – User 却没反应,大概率是被更高优先级的规则覆盖了:
- 右下角状态栏显示
Wrap: Off——点它一次,会立刻写入当前视图设置,优先级最高 - 文件绑定了语法(比如打开的是
.md或.log),但之前在Preferences → Settings – Syntax Specific里设过"word_wrap": false,它会直接屏蔽全局配置 - 文件体积过大(几十 MB 的日志),Sublime 会主动禁用
word_wrap保性能,此时配置再对也没用 - 插件冲突,典型如
Origami、TrailingSpaces,它们可能重置视图参数,临时禁用插件验证一下
怎么只对 Markdown / 日志开换行,Python 保持不换?
代码文件(.py、.js、.json)一旦强制软换行,容易让光标跳词(Ctrl+→)、Home/End 键行为错乱,还可能干扰 LSP 和格式化插件判断“一行是否超长”。但 .md、.log、.txt 这类纯文本极度依赖折行阅读。解决方案是语法专属配置:
- 先打开一个
.md文件 - 菜单选
Preferences → Settings – Syntax Specific - 右侧加载出
Markdown.sublime-settings(首次为空),加入:"word_wrap": true, "wrap_width": 0
- 保存后,所有 Markdown 文件自动启用,不影响 Python 文件
- 如果误给 Python 配了这个,删掉
Python.sublime-settings即可——它不会凭空生成
wrap_width 设成 80 到底有没有用?
wrap_width 不是“智能适配”,而是硬性截断逻辑:设成 80,Sublime 会在第 80 列后、且**最近一个空格/制表符/标点处**折行——前提是 word_wrap 已设为 true。
- 对英文分词有效,对中文、URL、下划线变量名(如
user_profile_data)基本无效 -
"wrap_width": 0表示退回到按窗口宽度软换行,更实用;设为0后,缩放窗口时折行位置实时调整 -
"word_wrap": "auto"是无效写法,Sublime 只认布尔值,字符串会被静默忽略 -
word_wrap是纯显示层处理,不插入任何\n,也不改变文件内容;复制粘贴时,你拿到的仍是原始单行文本
真正容易被忽略的是:换行行为完全不参与文件保存、LSP 分析或代码执行,它只是眼睛看到的样子。需要真实断行(比如整理日志、拆分超长 SQL),得靠正则替换或专用插件,不是开这个开关能解决的。











