sublime text的“自动换行”是软换行(soft wrap),仅改变显示不修改文件内容;永久开启需在settings – user中设word_wrap为true、wrap_width为0,并注意语法专属设置和右下角状态栏开关的高优先级。

Sublime Text 的“自动换行”本质是软换行(soft wrap),它只改变显示效果,不修改文件内容,也不插入真实 \n。想让长行不再横向滚动,关键不是“怎么加换行符”,而是正确启用并控制这个视觉渲染开关。
怎么永久开启窗口自适应软换行
全局生效的唯一可靠方式,是在用户配置里写死 word_wrap 和 wrap_width:
-
word_wrap必须设为布尔值true(不是字符串"true",否则静默失效) -
wrap_width推荐设为0:表示按当前窗口宽度实时折行,缩放编辑器时自动重排 - 务必改右侧的
Preferences → Settings – User,左侧Settings – Default会被升级覆盖且不生效 - 保存后,新打开的文件立即生效;已打开的文件可切个 Tab 或点右下角
Wrap: Off强制刷新视图
为什么 Markdown / 日志能换行,Python 却不行
因为 Sublime 的设置优先级是:视图设置 > 语法专属设置 > 用户设置 > 默认设置。你开了全局,但 Python 文件可能被 Python.sublime-settings 里的 "word_wrap": false 覆盖了。
- 打开一个
.py文件,执行Preferences → Settings – Syntax Specific - 检查右侧是否已有
"word_wrap": false—— 如果有,删掉或改成true - 更稳妥的做法是:只给需要折行的类型(如
Markdown、Plain Text、Log File)单独配"word_wrap": true,代码类保持默认关闭 - 注意:Python 文件一旦开启软换行,
Ctrl+→跳词、Home/End定位、LSP 行号判断都可能错乱
右下角显示 Wrap: Off 却改了配置也没用
状态栏这个开关优先级最高,它会直接写入当前视图设置,把所有配置都压住。
- 点一下右下角的
Wrap: Off,它会立刻变成Wrap: On并生效 - 如果点完又变回
Off,说明有插件在干扰(比如Origami、TrailingSpaces),临时禁用插件验证 - 大文件(几十 MB 的日志)可能被 Sublime 主动禁用软换行保性能,此时任何配置都无效
- 确认当前文件语法类型:右下角显示的是
Plain text还是Python?不同语法加载的是不同配置文件
换行后第二行没缩进,看着别扭怎么办
默认软换行是“硬截断”,第二行顶格开始,嵌套结构或长 JSON 看着容易丢层级。可以用 indent_subsequent_lines 微调:
- 在用户设置或语法专属设置里加一行:
"indent_subsequent_lines": true - 它会让换行后的后续行,自动对齐到首行文本起始位置(不是缩进字符,是视觉对齐)
- 该选项只对有缩进规则的语法有效(如
Python、YAML),对Plain Text无效 - 注意:这只是渲染效果,复制粘贴时仍为原始单行字符串
真正容易被忽略的是:软换行和文件内容完全无关。你需要真实断行(比如拆分超长 SQL、整理日志字段),得靠正则替换或专用插件,不是开 word_wrap 能解决的。











