必须将"word_wrap": true,"wrap_width": 0写入preferences → settings – user右侧json中,布尔值true不可写成字符串,设wrap_width为0实现窗口自适应软换行,保存后新文件立即生效,已开文件需切换tab或右键revert刷新。

怎么改 Settings – User 才真正生效
全局换行必须写进 Preferences → Settings – User,不是左侧的 Default 面板——后者只读,改了也白改,升级还会被覆盖。
打开设置后,在右侧 JSON 大括号内添加这两行(注意逗号分隔):
"word_wrap": true, "wrap_width": 0
word_wrap 必须是布尔值 true,写成 "true" 或 "auto" 都会被 Sublime 静默忽略;wrap_width 设为 0 表示按窗口宽度自适应软换行,设成 80 是硬截断,对中文、URL、长变量名基本无效。
保存后,新打开的文件立即生效;已打开的文件需切换 Tab 或右键 → “Revert” 刷新视图。
为什么改了还是不换行?优先级和干扰项排查
Sublime 的 word_wrap 有明确作用域优先级:视图设置 > 语法专属设置 > 用户设置 > 默认设置。常见失效原因不是配置错,而是被更高层覆盖:
- 右下角状态栏显示
Wrap: Off?点它一次,这个操作会写入当前视图设置,优先级最高,直接压过所有配置 - 当前文件绑定了语法(如 Python),而
Python.sublime-settings里写了"word_wrap": false,就会覆盖你的全局设置 - 用了 Vintage 模式(Vim 模拟)?按
Esc后再按z w也会切开关,容易误触 - 文件体积过大(几十 MB 日志)?Sublime 会自动禁用
word_wrap保性能,此时配置完全无效
怎么只对 Markdown / 日志开换行,Python 保持不换
代码类文件启用软换行后,Ctrl+→ 跳词、Home/End 定位会按“视觉行”算,LSP 插件也可能把折行当真实换行,导致行号偏移。纯文本类(.md、.log、.txt)才真正需要它。
做法很简单:
- 先打开一个
.md文件 - 菜单选
Preferences → Settings – Syntax Specific - 右侧空白处写入:
{"word_wrap": true,"wrap_width": 0} - 保存后,该配置实际存为
Markdown.sublime-settings,只影响 Markdown 文件
同理,日志文件常被识别为 Plain text 或 Log File,确认右下角语法名,进对应 Settings – Syntax Specific 添加即可。
缩进错位、第二行顶格?加个参数微调
默认软换行时,第二行会顶格显示,嵌套结构或 JSON 看起来层级断裂。这不是 bug,但可以缓解:
在对应设置(用户级或语法专属)中加一行:
"indent_subsequent_lines": true
这个参数会让第二行及之后自动缩进到上一行文本起始位置,阅读更连贯。但注意:indent_subsequent_lines 只对有缩进规则的语法(如 Python、YAML、JS)生效,对 Plain text 无效;也别和 wrap_width 设成具体数值(如 80)混用,否则可能冲突失效。
软换行本质是显示层行为,不插入真实换行符,复制粘贴仍是原始单行内容——这点容易被忽略,但恰恰是它和硬换行的根本区别。











