所有文件默认自动换行需设editor.wordwrap: "on"(用户级),改后立即生效;但language-specific设置优先级更高,可能静默覆盖,须检查右下角语言配置并统一设为"on",避免用auto或inherit。

怎么让所有文件默认自动换行(用户级永久生效)
直接设 editor.wordWrap 为 "on",这是最稳、最通用的做法。改完即生效,不用重启 VSCode,也不依赖工作区或语言类型。
常见错误现象:Ctrl + , 搜到 Editor: Word Wrap 后选了 on,但打开一个 .json 文件还是不换行;或者改完 settings.json 保存了,新打开的 .md 文件依然横向滚动。
- 优先检查右下角语言标识(如 “JSON”、“Markdown”),点击它 → “Configure 'JSON' language settings”,确认该语言专属配置里没写
"editor.wordWrap": "off"——language-specific 设置优先级高于用户设置,会静默覆盖 - 别用
"auto":名字有误导性,实际几乎等同于off,只在极窄视口+极短内容时才可能触发 - 别用
"inherit":行为不可控,容易被插件、.vscode/settings.json 或.editorconfig覆盖 - 大小写敏感:
editor.wordwrap(小写 w)无效,必须是editor.wordWrap - 已打开的文件可能需手动按一次
Alt + Z(Win/Linux)或Option + Z(macOS)刷新渲染
为什么开了 editor.wordWrap: "on",base64 或长 URL 还是一整行?
因为 "on" 模式只在自然断点(空格、/、-、.、_ 等)处折行;遇到无分隔符的超长串(如 base64、minified JS、十六进制 dump、无破折号的 UUID),它不会字符级硬切。
这不是 bug,是浏览器文本渲染层的限制。VSCode 不会、也不该为了显示强行破坏原始数据结构。
- 若真需要对这类内容强制视觉截断,得切到
"wordWrapColumn"模式,并配一个较小值,例如"editor.wordWrapColumn": 40 -
"bounded"模式看似灵活,但窗口缩放时可能突然从“列数截断”切回“视口宽度折行”,阅读节奏被打断,团队协作中反而更难统一预期 - 注意:
editor.wordWrap是纯显示层行为——Git diff、复制粘贴、格式化工具、终端输出都看不到折行,它们处理的仍是原始单行
换行后第二行顶到左边,缩进错位怎么办?
默认软折行会让续行紧贴左边界,嵌套代码或 JSON 的层级感全丢,看着像乱码。
加这一行配置即可修复视觉连贯性:
"editor.wrappingIndent": "indent"
- 它会让折行后的子行继承上一行的缩进量(比如原行缩进 4 空格,续行也缩进 4 空格)
- 对链式调用、多层对象字面量、YAML/JSON 响应体特别有用
- 不改变任何实际内容,只优化人眼识别效率
最容易被忽略的一点:language-specific 设置优先级最高
哪怕你在用户 settings.json 里写了 "editor.wordWrap": "on",只要某个文件类型(比如 .log、.env、.yml)在语言专属配置里显式设了 "off",它就一定不换行。
验证方式很简单:打开一个不换行的文件 → 看右下角语言标签 → 点击 → “Configure 'XXX' language based settings” → 检查有没有 "editor.wordWrap": "off" 这行。很多插件(如 REST Client、Log Viewer)会悄悄关掉自己负责的文件类型的换行,你根本不会注意到。











