Sublime Text需同时设置全局和语法特定的word_wrap为true(非字符串)并设wrap_width为0、indent_subsequent_lines为true,且注意Alt+Z快捷键及插件干扰,才能实现稳定自动换行。

怎么让 Sublime Text 自动换行显示超长代码行
Sublime Text 默认不开启自动换行,代码行一长就横向滚动,看函数参数或日志串特别费劲。开就行,但得找对地方——不是在「Preferences → Settings」里改 word_wrap 就完事,它受作用域影响,全局设了也可能在某些文件类型里失效。
-
word_wrap必须设为true(不是"true"字符串) - 如果只在用户设置里改了,但当前文件绑定了语法(比如
Python或JSON),而该语法对应的.sublime-settings文件里写了"word_wrap": false,那它会覆盖全局设置 - 推荐同时检查并修改:
Preferences → Settings — Syntax Specific(打开后会看到类似Python.sublime-settings的文件)
为什么改了 settings 还不换行?常见干扰项
最常踩的坑是混淆了「软换行」和「硬换行」:Sublime 的 word_wrap 是纯显示层的软换行,不插入 \n,不影响复制、保存或运行。如果你发现改了没反应,大概率是下面几个原因:
- 当前视图被手动关闭了换行:按
Alt+Z(Windows/Linux)或Cmd+Option+Z(macOS)会切换开关,这个快捷键优先级高于配置 - 文件使用了「Vintage 模式」(Vim 模拟),
Esc后再按z w也能切,容易误触 - 插件冲突,比如
Origami或SideBarEnhancements某些版本会重置视图设置,可临时禁用插件验证
想让换行更舒服:缩进对齐与断点控制
默认换行是直接截断,长字符串或嵌套结构里可能断在括号中间,阅读体验差。Sublime 不支持像 VS Code 那样按逗号/点号智能折行,但能靠两个配置微调视觉效果:
-
wrap_width:设具体数值(如80)可强制在列数处换行;设为0表示自适应窗口宽度(推荐) -
indent_subsequent_lines:设为true后,第二行及之后会自动缩进到上一行文本起始位置,避免“悬空”感 - 注意:
wrap_width在Settings — Syntax Specific里设才稳定,全局设有时会被忽略
JSON / 日志等纯文本文件换行异常怎么办
这类文件常被识别为 Plain Text 或 JSON,而 Sublime 对它们的默认 word_wrap 是 false。尤其打开大日志时,整行挤成一团,根本没法定位字段。
- 打开文件后,先确认右下角显示的语法类型(如
Plain text),然后执行Preferences → Settings — Syntax Specific - 在里面加两行:
"word_wrap": true,<br>"wrap_width": 0
- 保存后立刻生效,不用重启;如果仍无效,检查是否被
Package Control安装的TrailingSpaces等插件干扰(它们有时会监听 view 修改)
真正麻烦的是多层嵌套的 JSON 或 minified JS——换行只是显示问题,但光靠 word_wrap 解决不了逻辑可读性。这时候得配合 Ctrl+Shift+P 调出命令面板,搜 JSON Reindent 或装 JsFormat,先格式化再换行,顺序不能反。










