VSCode默认不自动换行是设计使然,需显式设置editor.wordWrap为"on"永久生效或按Alt+Z/Option+Z临时切换当前文件;language-specific设置可能覆盖全局配置,缩进错位可加"editor.wrappingIndent":"indent"修复。

VSCode 默认不自动换行,必须显式启用 editor.wordWrap 才能避免拖水平滚动条——这不是 bug,是设计如此。
按 Alt+Z / Option+Z 临时切换当前文件换行状态
这是最快验证方式,不改任何配置,适合快速查看日志、JSON 响应体或 Markdown 表格:
- Windows / Linux:按
Alt + Z;macOS:按Option + Z - 右下角状态栏会实时显示“换行”或“不换行”
- 只作用于当前激活的编辑器标签页,关闭再打开即恢复原设置
- 常见无效原因:
焦点不在编辑器主区域(比如光标在终端、搜索框、侧边栏),或当前文件语言被 language-specific 设置覆盖
全局开启自动换行(用户级永久生效)
改一次,所有工作区、所有文本类文件都默认换行(除非被语言专属设置显式覆盖):
- 快捷键
Ctrl + ,(Win/Linux)或Cmd + ,(macOS)打开设置 - 搜索
word wrap,找到Editor: Word Wrap,下拉选on - 或直接编辑
settings.json,加这一行:"editor.wordWrap": "on" - 别用
auto(几乎不触发)或inherit(易被插件/工作区配置覆盖)
为什么开了 editor.wordWrap 还是不换行?
最常见原因是 language-specific 设置优先级更高,尤其对 .json、.md、.log 等非代码文件,VSCode 默认设为 "editor.wordWrap": "off":
- 打开不换行的文件 → 看右下角语言标识(如 “JSON”)→ 点击它 → 选 “Configure 'JSON' language based settings”
- 检查打开的 settings 片段里是否有
"editor.wordWrap": "off",删掉或改成"on" - 某些格式化扩展(如 Prettier)也可能重置该行为,可临时禁用排查
换行后缩进错位、视觉割裂怎么办
默认软折行会让第二行顶到行首,破坏嵌套结构的连贯性:
- 加配置项:
"editor.wrappingIndent": "indent" - 它会让折行后的子行继承上一行的缩进层级,对齐更自然
- 注意:
editor.wordWrap是纯显示层行为,不插入真实换行符,Git diff、复制粘贴、保存内容完全不受影响 - 超长无空格串(如 base64、minified JS)仍可能被字符级硬切,这不是配置问题,而是浏览器文本渲染限制
最容易被忽略的是 language-specific 设置的覆盖行为——哪怕你全局设了 "on",点开一个 .json 文件,它照样可以不换行,得单独去它的语言配置里确认。


















