sublime text的word_wrap仅控制显示折行,不生成缩进;需在用户设置中设"word_wrap": true生效,语法专属设置可单独配置,wrap_width慎用,无换行后缩进功能。

自动换行和缩进是两回事,别混着设
很多人搜“自动换行缩进”,其实是想让长代码行折行后,第二行能自动缩进对齐(比如 Python 的嵌套结构、JSON 的层级),但 Sublime Text 的 word_wrap **只控制是否折行显示,不生成任何新缩进**——它不会在视觉换行处加空格或 Tab,也不会按语法层级缩进。所谓“换行后缩进”,是误解了功能边界。
如果你看到某些编辑器(如 VS Code)支持“缩进感知换行”,那属于高级渲染能力,Sublime 没有原生实现。强行想模拟?只能靠人工排版或插件辅助,但效果有限且不稳定。
-
word_wrap是纯显示开关,值为true/false/"auto",不影响文件内容 - 缩进行为(
tab_size、translate_tabs_to_spaces等)只作用于你**手动输入或编辑时的光标位置**,和换行无关 - 开启
word_wrap后,Ctrl+→和Home/End会按“视觉行”跳转,不是整行——这是最常被忽略的交互陷阱
全局启用自动换行:改对地方才生效
永久开启只需一行配置,但错放在默认设置(左侧面板)或项目设置里就无效。Sublime 加载优先级是:视图设置 > 语法专属设置 > 用户设置 > 默认设置,所以必须写进用户设置的右侧 JSON 中。
- 打开
Preferences → Settings,确保修改的是右侧「User」面板 - 加入这一行(注意逗号):
"word_wrap": true - 保存后所有新打开的文件都默认换行;已打开的文件需重载或手动触发一次
Word Wrap: Toggle - 如果加了还不生效,检查右下角语法标识(如 “Python”),说明该类型可能有专属设置覆盖了全局配置
按文件类型单独开换行:Markdown、日志、纯文本最需要
代码文件(如 .py、.js)通常不需要自动换行——折行反而干扰逻辑阅读;但 Markdown 注释、日志输出、SQL 查询串、YAML 配置等长文本场景,换行是刚需。
- 打开一个
.md文件 →Preferences → Settings – Syntax Specific - 右侧空白处写入:
{"word_wrap": true},保存 - 同理可为
Plain text、Log File、reStructuredText单独配置 - 切记不要把这行粘贴到主
Settings里,否则会被忽略——语法专属设置文件名是Markdown.sublime-settings,路径在Packages/User/
换行宽度和视觉行为:别用 wrap_width 卡死代码行
wrap_width 设成 80 或 100 看似规范,但在代码场景中容易坏事:它强制按字符数截断,不管括号匹配、字符串边界或注释位置,结果就是折在中间,眼花缭乱。
- 日常阅读建议保持默认:
"word_wrap": "auto"(等价于true),它按当前视图宽度自适应折行 - 只有写作类场景(如写文档、邮件草稿)才考虑固定宽度:
"wrap_width": 72 -
"word_wrap_column"是旧参数,已被弃用,和wrap_width共存时后者优先生效 - 没有“换行后缩进”参数,也不存在
indent_wrapped_lines这种配置项——别白费劲找
真正要解决长代码可读性,靠换行不如靠分屏、折叠或格式化工具;而换行本身,只要认准“它只是眼睛的事,不是代码的事”,就不会掉进缩进幻觉里。











