vscode默认不换行是设计使然,需显式启用editor.wordwrap;按alt+z(win/linux)或option+z(macos)可临时切换当前文件换行,右下角实时显示状态;全局启用需设"editor.wordwrap": "on",但language-specific设置可能覆盖全局配置。

VSCode 默认不换行,不是 bug,是设计如此;想让长代码、日志、JSON 或 Markdown 行自动折到下一行显示,必须显式启用 editor.wordWrap,否则只能拖水平滚动条。
怎么立刻让当前文件换行显示
按 Alt + Z(Windows/Linux)或 Option + Z(macOS)即可切换当前编辑器的换行状态。右下角状态栏会实时显示“换行”或“不换行”。
- 只对当前激活标签页生效,关闭再打开会恢复原设置
- 常见无效原因:焦点不在编辑区(比如光标在终端、搜索框或侧边栏)
- 某些语言(如
JSON、markdown)可能有 language-specific 设置覆盖全局,需点右下角语言标识 → “Configure 'JSON' language based settings” 单独设editor.wordWrap
怎么让所有文件默认自动换行
改用户级 settings.json 最稳妥,写一次,全局生效(除非被语言专属设置显式覆盖):
- 快捷键
Ctrl + ,(Win/Linux)或Cmd + ,(macOS)打开设置,搜word wrap,选on - 或直接编辑
settings.json,加这一行:"editor.wordWrap": "on" - 避免用
auto(几乎不触发)和inherit(行为不可控,易被插件/工作区覆盖)
为什么开了换行,URL 或 base64 还是一长条
VSCode 默认按空格、连字符、斜杠等断点折行;遇到无分隔符的超长串(如 minified JS、base64、十六进制 dump),on 和 wordWrapColumn 都不会切。
- 这不是 bug,是浏览器文本渲染限制,VSCode 不会主动插入硬换行破坏原始数据
- 若真需强制切,可试
"editor.wordWrap": "wordWrapColumn"+ 极小editor.wordWrapColumn值(如 40) -
editor.wrappingIndent设为"indent"能缓解缩进错位问题,但对无空格串无效
language-specific 设置优先级高于全局
这是最容易被忽略的一点:哪怕你全局设了 "editor.wordWrap": "on",打开一个 .json 文件仍可能不换行——因为 VSCode 默认给 JSON 语言关掉了换行。
- 验证方式:打开不换行的文件 → 点右下角语言标签(如 “JSON”)→ “Configure 'JSON' language based settings” → 查是否有
"editor.wordWrap": "off" - 修复方式:在该语言设置里手动覆盖为
"editor.wordWrap": "on",或删掉那行off - 同理适用于
log、plaintext、markdown等非代码类语言











