永久开启全局自动换行需在「preferences → settings – user」中设 "word_wrap": true 和 "wrap_width": 0;语法专属设置(如 python.sublime-settings)会覆盖全局,需检查或删除;软换行仅影响显示,不改变文件内容。

Sublime Text 默认不自动换行,必须手动设 word_wrap 为 true 才生效;光点菜单或按 Alt+Z 只影响当前文件,关掉重开就失效——真要“每次打开都折行”,得改配置,且要注意语法专属设置会覆盖全局。
怎么永久开启自动换行(全局生效)
改的是右侧「Preferences → Settings – User」里的 JSON,不是左侧默认设置(升级会被覆盖,也不生效):
-
word_wrap必须是布尔值true,写成"word_wrap": "true"(字符串)或"word_wrap": "auto"都无效,会被静默忽略 - 加
"wrap_width": 0显式声明“按窗口宽度软换行”,避免依赖 Sublime 内置的模糊默认值(约 120 列) - 保存后,新打开的文件立即生效;已打开的文件切个 Tab 或右键 → “Revert” 可刷新视图
- 如果仍不换行,先看右下角状态栏是否显示
Wrap: Off——点它能强制切换,这个开关优先级高于所有配置
为什么 Markdown 日志能换行,Python 却不行
因为 Python、JSON、JS 等语法对应的 Python.sublime-settings 文件里,可能有 "word_wrap": false,它会直接覆盖全局设置。这不是 bug,是 Sublime 的作用域规则:视图设置 > 语法专属设置 > 用户设置 > 默认设置。
- 想只对
.md、.log、.txt启用换行:先打开一个.md文件,再选Preferences → Settings – Syntax Specific,在右侧加"word_wrap": true和"wrap_width": 0 - 这个文件名叫
Markdown.sublime-settings,只管 Markdown,不影响其他类型 - 如果误配了 Python,直接删掉
Python.sublime-settings即可——它不会凭空生成,也不会影响全局 - 代码类文件启用软换行后,
Ctrl+→跳词、Home/End定位会按“视觉行”算,不是整行,容易误判;LSP 插件也可能把折行当真实换行,导致行号偏移
wrap_width 设成 80 还是 0?别乱试
wrap_width 不是“自适应”,而是硬截断:设成 80,Sublime 会在第 80 列后、且最近一个空格或标点处折行;对英文文档、PEP8 注释有用,但对中文、URL、下划线变量名基本无效。
-
"wrap_width": 0:推荐用于 Markdown / 日志,表示“随窗口缩放实时调整”,阅读最自然 -
"wrap_width": 80:适合配合"rulers": [80]显示参考线,写文档或遵守 PEP8(Python 推荐 79) - 不设
wrap_width:Sublime 用内置默认(约 120),但行为不透明,建议显式指定 -
wrap_width只在word_wrap为true时生效,单独设没用
开了自动换行,复制出来还是长行?正常
这是软换行(soft wrap)的本质:它只改变显示层,不插入真实 \n,也不修改文件内容。复制、保存、运行、Git 提交,全部按原始单行处理。
- 如果你需要把长行真正断成多行(比如整理日志、拆分超长 URL),
word_wrap帮不上忙,得用正则替换(如Find: (? + <code>Replace: \n)或插件 - 开启后,
indent_subsequent_lines设为true可让折行后的第二行缩进对齐首行(对 Python/JS/YAML 有效),但它对Plain Text语法无效 - 某些插件(如 TrailingSpaces、Origami)会重置视图设置,导致换行失效;排查时可临时禁用插件验证











