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

VSCode 默认不换行,不是 bug,是设计如此;要让长代码行(比如链式调用、JSON 响应、URL)自动折到下一行显示,必须显式设置 editor.wordWrap,否则只能拖水平滚动条。
按快捷键临时开启当前文件换行
不用改任何配置,适合快速查看日志、读长 Markdown 表格或验接口返回体:
- Windows / Linux:按
Alt + Z;macOS:按Option + Z - 右下角状态栏会立刻显示“换行”或“不换行”,实时反馈
- 常见无效原因:
焦点不在编辑器主区域(比如光标在终端、搜索框或侧边栏);或当前文件类型(如JSON、markdown)启用了 language-specific 设置,覆盖了全局配置
让所有文件默认自动换行(用户级永久生效)
改一次,所有工作区、所有文件类型都生效(除非被语言专属设置显式覆盖):
- 快捷键
Ctrl + ,(Win/Linux)或Cmd + ,(macOS)打开设置 - 搜索
word wrap,找到Editor: Word Wrap,下拉选on - 或直接编辑
settings.json,加这一行:"editor.wordWrap": "on" - 注意:
auto和inherit不推荐——auto实际几乎不触发,inherit容易被插件或工作区配置意外覆盖
按固定列数强制换行(如团队规范要求单行 ≤ 120 字符)
仅设 editor.wordWrapColumn 数值没用,必须搭配对应模式才生效:
- 先设
editor.wordWrap为wordWrapColumn或bounded - 再设
editor.wordWrapColumn,例如:"editor.wordWrapColumn": 120 -
wordWrapColumn模式:严格按列数截断,窗口再宽也折;bounded模式:取“视口宽度”和“120 列”中较小者,兼顾大屏与可读性 - 折行不识别单词边界——超长 URL、base64、无空格变量名会被字符级硬切,阅读时需留意
换行后缩进错位、视觉割裂怎么办
默认软折行会让第二行顶到行首,破坏嵌套结构的视觉连贯性:
- 加配置项:
"editor.wrappingIndent": "indent" - 它会让折行后的子行继承上一行的缩进层级,对齐更自然
- 注意:
editor.wordWrap是纯显示层行为,不影响保存内容、Git diff、格式化工具或复制粘贴结果——它只改变你眼睛看到的样子 - 极长行(如几万字符的日志)开启换行可能卡顿,此时可试
bounded模式缓解渲染压力
最容易被忽略的一点:language-specific 设置优先级高于用户设置,哪怕全局开了 on,打开一个 .json 文件仍可能不换行——得点右下角语言标识,进它的专属配置里单独设 editor.wordWrap。











