vscode自动换行默认关闭,需手动启用;按alt+z(win/linux)或option+z(macos)可即时切换当前文件换行状态,右下角实时显示,但仅对激活标签页生效,且language-specific设置优先级更高,可能覆盖全局配置。

VSCode 的自动换行(editor.wordWrap)默认是关闭的,必须手动开启,否则长行永远靠水平滚动查看——这不是 bug,是设计选择。
怎么立刻让当前文件换行显示
按 Alt + Z(Windows/Linux)或 Option + Z(macOS)即可切换。右下角状态栏实时显示“换行”或“不换行”。
- 只对当前激活的编辑器标签页生效,关掉再打开会恢复原设置
- 无效时先确认:光标是否在编辑区(不是终端、搜索框、设置页或 Git diff 面板)
- 若仍无效,大概率是 language-specific 设置覆盖了全局配置,比如打开的是
.json文件,它默认关换行
为什么全局设了 "editor.wordWrap": "on" 还不生效
VSCode 的 language-specific 设置优先级高于用户级 settings.json。常见语言如 json、markdown、plaintext 默认设为 "off",会直接覆盖你全局写的 "on"。
- 验证方式:打开不换行的文件 → 点击右下角语言标识(如“JSON”)→ 选“Configure 'JSON' language based settings”
- 检查该语言专属配置里是否有
"editor.wordWrap": "off",有就删掉,或显式改成"on"或"bounded" - 别用
"inherit"值,行为不可控,容易被插件或工作区设置覆盖
editor.wordWrap 四种取值的实际效果差异
不是只有开/关二选一:"off"、"on"、"wordWrapColumn"、"bounded" 行为完全不同。
-
"off":不折行,强制水平滚动——适合调试日志对齐、看完整 SQL 或正则表达式 -
"on":按当前编辑器宽度软折行,最通用;但对中文、base64、minified JS 等无空格串基本无效 -
"wordWrapColumn":必须配合"editor.wordWrapColumn": 120使用,严格按列数截断,适合团队硬性规范 -
"bounded":取视口宽度与wordWrapColumn的较小值,大屏不浪费、小屏不挤,但窗口缩放时折行点会跳变
中英文混合、长 URL、base64 不换行怎么办
VSCode 默认只在空格、斜杠、连字符等 Unicode 断点处折行,不会劈开汉字或 base64 字符串。这是渲染限制,不是配置错误。
- 中文/日文/韩文建议用
"bounded"模式 + 显式"editor.wordWrapColumn": 80,比"on"更可靠 - 对
.md、.log、.txt等非代码文件,需单独配 language-specific 设置,例如:"[markdown]": {"editor.wordWrap":"bounded","editor.wordWrapColumn": 80} - 真要插入真实换行符(即修改文件内容),
editor.wordWrap完全不管用,得用扩展如rewrap,选中后按Alt + Q -
editor.wrappingIndent设为"indent"可缓解缩进错位,但对无分隔符长串无效
最容易被忽略的是 language-specific 覆盖行为——哪怕 settings.json 里写得再干净,点开一个 JSON 文件,它仍可能按自己的规则拒绝换行。每次遇到“开了却不生效”,第一反应不该是重装插件,而是点右下角语言标签查配置。











