sublime默认不换行,右下角状态栏“wrap: on/off”优先级最高;用户配置中"word_wrap": false仅作默认值,易被项目、语法专属或插件设置覆盖;复制内容不断行,因word_wrap仅为显示层渲染。

Sublime 默认就不换行,所谓“设置不换行”,其实是确保 word_wrap 没被意外开启——多数人遇到的“关不掉换行”,根本不是设置错了,而是被更高优先级的配置或状态覆盖了。
怎么确认当前文件是否真开启了换行
右下角状态栏会显示 Wrap: On 或 Wrap: Off。这个状态比任何配置都优先:哪怕你全局设了 "word_wrap": false,只要这里显示 On,当前视图就一定在换行。点它一下就能强制切换,这是最快速的验证和修复方式。
- 快捷键临时关闭:
Alt+Z(Windows/Linux)或Cmd+Option+Z(macOS) - 菜单路径:
View → Word Wrap,取消勾选 - 命令面板输入:
Word Wrap: Toggle回车
为什么改了用户配置还是换行
用户配置 Preferences.sublime-settings 里的 "word_wrap": false 只是“默认值”,随时可能被以下三类设置覆盖:
-
.sublime-project文件里写了"word_wrap": true——项目级设置优先级最高,检查项目根目录是否存在该文件 - 当前文件类型有语法专属配置,比如打开了一个
.md文件后,Markdown.sublime-settings里设了"word_wrap": true,它会直接生效 - 插件(如
Origami、TrailingSpaces)在加载时重置了视图设置,可尝试禁用插件后重启验证
如何真正禁用所有换行(含语法专属场景)
如果只想让代码类文件(如 .py、.js、.json)坚决不换行,又不想影响 .md 或 .log,推荐分层控制:
- 全局用户配置中明确写:
"word_wrap": false(不要留空,也不要删掉这一行) - 对需要换行的类型单独配:打开一个
.md文件 →Preferences → Settings – Syntax Specific→ 右侧加"word_wrap": true - 若已误配了 Python,删掉
Python.sublime-settings即可(它不会自动重建) - 别碰
wrap_width:设成0或具体数字都只在word_wrap: true时起作用,false 下它完全无效
复制粘贴时还是断开了?那不是换行的问题
word_wrap 是纯显示层行为,不插入 \n,也不改变文件内容。你看到的“折行”只是视觉渲染,复制出来永远是原始单行。如果复制后文本在其他地方(比如终端、邮件)看起来断开了,那是接收端的渲染逻辑,和 Sublime 无关。真要插入真实换行,得用正则替换:Ctrl+H → Find: (? → Replace: <code>\n。
最容易被忽略的是:状态栏的 Wrap 开关、项目配置文件、以及语法专属设置这三层覆盖关系。改完配置一定要保存,Sublime 不会自动重载,且 JSON 格式错误(比如少逗号)会导致整段配置静默失效。











