sublime text 默认不开启软换行,需在 settings – user 中添加 "word_wrap": true, "wrap_width": 0 全局启用;语法专属设置(如 markdown.sublime-settings)可覆盖全局配置;代码文件建议关闭以避免编辑与 lsp 功能异常。

Sublime Text 默认不开启自动换行,所谓“代码自动换行”其实是软换行(word_wrap),它只改变显示,不插入真实 \n —— 所以别指望它帮你格式化代码或修复 PEP8;真要改内容,得用正则或插件。
怎么让所有文件默认启用软换行
全局生效的关键是改对地方:打开 Preferences → Settings – User(不是左侧的 Default),在右侧 JSON 里加这两行:
{
"word_wrap": true,
"wrap_width": 0
}
注意三点:
-
word_wrap必须是布尔值true,写成"true"或"auto"都会静默失败 -
wrap_width设为0表示按窗口宽度自适应折行;设成80是硬截断,对中文、URL、下划线变量名基本无效 - 改完保存,新打开的文件立刻生效;已打开的文件可能需要切换 Tab 或点右下角状态栏的
Wrap: Off强制刷新
为什么 Markdown / 日志开了也不换行
因为 Sublime 的语法识别会加载专属设置(如 Markdown.sublime-settings),而它优先级高于用户配置。如果该文件里写了 "word_wrap": false,全局设置就完全被覆盖。
解决方法很直接:
- 先打开一个
.md或.log文件 - 再选
Preferences → Settings – Syntax Specific - 在右侧空白处加:
"word_wrap": true和"wrap_width": 0 - 保存——它会生成
Markdown.sublime-settings或Plain Text.sublime-settings,只影响这类文件
别手滑存到主 Settings – User 里,否则无效。
为什么 Python / JS 文件不该开 word_wrap
代码文件开软换行会干扰实际编辑行为,不是显示问题,而是功能错位:
-
Ctrl+→/Home/End键按“视觉行”跳转,不是物理行,容易误判光标位置 - LSP 插件(如 pylsp、typescript-language-server)依赖原始行号,折行后跳转、悬停提示可能偏移
- 缩进识别异常,比如多层嵌套字典被折成三行,
Tab缩进可能只作用于第一段 - 复制整行时仍复制原始单行内容,但你眼睛看到的是三段,容易误以为结构已变
所以推荐:纯文本类(.md、.log、.txt)开,代码类(.py、.js、.json)关。若误开了,删掉对应语言的 *.sublime-settings 文件即可。
改了配置还是不换行?先看这三处
失效往往不是配置错,而是被更高优先级规则压制:
- 右下角状态栏显示
Wrap: Off?点它一次,这个操作会写入当前视图设置,优先级最高,比任何 JSON 都管用 - 文件体积过大(比如 50MB 的日志),Sublime 会主动禁用
word_wrap保性能,此时配置再对也白搭 - 插件冲突,典型如
Origami、TrailingSpaces(旧版),它们可能在加载时重置视图参数,可临时禁用验证
真正要注意的不是“怎么开”,而是“谁在关”——优先级链是:视图设置 > 语法专属设置 > 用户设置 > 默认设置。查问题时,从右下角状态栏开始,比翻配置文件快得多。











