VSCode 中文不自动换行是因为“on”模式依赖空格等单词分隔符,而中文无天然分隔符;应设为“bounded”并配wordWrapColumn,或按语言类型单独配置。

VSCode 默认的 editor.wordWrap 对中英文混合文本的换行行为不一致——英文按空格断行,中文却常整段溢出或在标点处异常折断。这不是 bug,而是编辑器默认按 Unicode 字符边界处理,而中文没有空格分隔符,导致“按单词换行”逻辑失效。
为什么中文不自动换行?
VSCode 的 on 模式本质是“按单词(word)软折行”,依赖语言服务识别单词边界。英文有空格、连字符等天然分隔符;中文、日文、韩文等连续文字没有,默认不触发折行,结果就是整段贴边、横向滚动条出现。
-
on模式对中文基本无效,尤其在plaintext、markdown或未启用语言服务的文件中 -
bounded模式能强制在视口宽度处截断,但可能把一个汉字劈开(实际不会,但视觉上像“断字”) -
wordWrapColumn配合bounded是更可控的选择,避免被窗口缩放干扰
真正让中文换行的配置组合
仅设 "editor.wordWrap": "on" 不够。必须配合底层渲染策略和语言级覆盖:
- 全局设置里加这两项:
"editor.wordWrap": "bounded",<br>"editor.wordWrapColumn": 120
- 对中文常用类型显式覆盖,比如在
settings.json中添加:"[markdown]": {<br> "editor.wordWrap": "bounded",<br> "editor.wordWrapColumn": 80<br>},<br>"[plaintext]": {<br> "editor.wordWrap": "bounded"<br>} - 禁用可能干扰的插件:某些 Markdown 预览扩展(如 “Markdown All in One”)会重置
wordWrap,临时禁用可验证是否为插件冲突
快捷键没反应?先检查焦点和语言模式
按 Alt + Z(Win/Linux)或 Option + Z(macOS)没效果,90% 是以下两个原因:
- 焦点不在编辑器主区域——比如光标停在终端、搜索框、侧边栏,或刚从 GitLens 面板切换回来
- 右下角语言标识显示的是
Plain Text或Log,这些类型 VSCode 默认关掉换行;点击它 → “Configure 'Plain Text' language based settings” → 手动设"editor.wordWrap": "bounded"
复制粘贴时换行消失?这是设计,不是缺陷
所有换行都是纯显示层(soft wrap),git diff、eslint、复制到记事本或微信里,看到的仍是原始单行长文本。别指望靠它生成带硬换行(\n)的文档——那是格式化工具(如 rewrap 扩展)或导出环节该干的事。
如果你真需要“保存时插入真实换行符”,就得用扩展,比如安装 rewrap,然后选中段落按 Alt + Q,但它改的是源文件内容,和 editor.wordWrap 完全无关。


















