vscode默认不换行是设计使然,非bug;临时启用按alt+z(win/linux)或option+z(macos),仅作用于当前文件;永久生效需设"editor.wordwrap": "on",但language-specific设置可能覆盖全局配置。

VSCode 默认不换行不是 bug,是设计如此——它不会自动折行长行,你得手动告诉它“该换行了”,否则只能拖水平滚动条看代码、JSON 或日志。
怎么立刻让当前文件换行(不用改设置)
最快验证方式:按 Alt + Z(Windows/Linux)或 Option + Z(macOS),当前编辑器标签页立即切换换行状态。右下角状态栏实时显示“换行”或“不换行”。
- 只作用于当前激活的编辑器标签页,关闭再打开就恢复原样
- 光标必须在编辑器主区域(不在终端、搜索框、侧边栏),否则快捷键无效
- 适合快速查看接口返回体、长 Markdown 表格、未格式化的 JSON 日志
为什么全局设了 editor.wordWrap 还是不换行
最常见原因是 language-specific 设置优先级更高,尤其对 .json、.md、.log 等非代码文件,VSCode 默认设为 "editor.wordWrap": "off"。
- 点右下角语言标识(如“JSON”)→ 选“Configure 'JSON' language based settings”
- 检查打开的 settings 片段里是否有
"editor.wordWrap": "off",删掉或改成"on" -
editor.wordwrap(小写 w)无效,必须是editor.wordWrap(大小写敏感) - 已打开的文件可能需手动按一次
Alt + Z才刷新渲染
怎么按固定列数(比如 120)视觉换行
"on" 模式只按视口宽度折,不认列数;要严格按列数截断,必须用 wordWrapColumn 或 bounded 模式,并配 editor.wordWrapColumn 值。
- 选
wordWrapColumn模式:窗口再宽也强制在第 120 列折,适合强规范场景 - 选
bounded模式:取“视口宽度”和editor.wordWrapColumn中较小值,兼顾大屏与可读性 - 超长无空格串(如 base64、minified JS)仍会被字符级硬切,这不是配置问题,是浏览器渲染限制
换行后缩进错位、第二行顶到左边怎么办
默认软折行会让续行紧贴左边界,破坏嵌套结构的视觉连贯性。加这一行就能修复:
"editor.wrappingIndent": "indent"
它会让折行后的子行继承上一行的缩进层级,对齐更自然。注意:editor.wordWrap 是纯显示层行为,不影响保存内容、Git diff、复制粘贴或格式化工具——你看到的只是眼睛舒服了,源码一点没变。
最容易被忽略的是 language-specific 设置的覆盖逻辑:哪怕你在用户 settings.json 里写了 "editor.wordWrap": "on",点开一个 .json 文件,它照样可以不换行,因为那个文件的语言配置说了算。











