vscode 默认不换行因 editor.wordwrap 为 off,推荐设为 bounded 并调大 editor.lineheight 至 1.4–1.6;终端、调试控制台、markdown 预览需单独开启对应 wordwrap 设置。

VSCode 为什么默认不换行,导致代码挤成一团?
因为 editor.wordWrap 默认是 off,编辑器优先保证单行完整显示,尤其对长字符串、链式调用或 JSX/HTML 模板这种天然宽的结构特别不友好。你拖动水平滚动条时,其实不是“看不全”,而是“根本不想让你看全”——它认定你应该横向阅读,而不是纵向扫视。
这不是 bug,是设计选择;但对多数现代开发场景(尤其是响应式 UI、配置文件、日志输出等),wordWrap: "on" 或 "bounded" 才更实用。
怎么开自动换行又不让行与行贴太紧?
只开换行不够,editor.lineHeight 和 editor.fontSize 共同决定视觉密度。默认 lineHeight: 0 表示“由字体大小自动推算”,结果常偏小,换行后上下行文字几乎粘连。
- 在设置中搜
editor.wordWrap→ 改为on(全文换行)或bounded(仅在视口宽度内换行,推荐) - 搜
editor.lineHeight→ 设为1.4到1.6之间(数值是倍数,不是像素) - 搜
editor.fontSize→ 若已设为14,搭配lineHeight: 1.5就是 21px 行高,足够呼吸感
注意:lineHeight 设为 0 时,VSCode 会用字体的 ascender/descender 计算,不同字体结果差异大(比如 Fira Code 和 Consolas 就不一样);固定值更可控。
换行后光标定位错乱、折叠符号错位怎么办?
这是 wordWrap: "on" 的经典副作用:换行是渲染层做的,但光标位置、代码折叠、括号匹配仍按逻辑行计算。你会看到光标跳到“第二视觉行”,但实际还在第一逻辑行末尾。
- 优先用
bounded而非on—— 它只在视口宽度不足时换行,不影响编辑器内部坐标系统 - 避免在
settings.json里手动写"editor.wordWrap": "on",改用 GUI 设置,它会自动加"editor.wordWrapColumn": 120(可选) - 如果用了插件如
Bracket Pair Colorizer或indent-rainbow,确认它们支持换行渲染;老版本可能把缩进线画到错误位置
终端、调试控制台、Markdown 预览也挤?要单独调
VSCode 的换行设置是按视图区分的:editor.* 只管代码编辑器,终端、调试控制台、Markdown 预览都走各自配置。
- 终端换行:设置搜
terminal.integrated.wordWrap→ 开true - 调试控制台:搜
debug.console.wordWrap→ 同样设为true - Markdown 预览:需装插件如
Markdown Preview Enhanced,其设置项叫markdown-preview-enhanced.textWrap
别指望一个开关全局生效——每个面板的渲染引擎和用途不同,强行统一反而容易出错。
真正卡住人的不是“要不要换行”,而是换行后行高没跟上,或者误以为所有面板共用同一套设置。调完记得重启编辑器(部分设置热更新不生效),再打开一个长 JSON 或 JSX 文件试试手感。











