应设为"bounded"才能彻底禁用横向滚动条;它强制字符级截断,不依赖空格分隔,可劈开长token,配合editor.wordWrapColumn(如120)使用最稳定可靠。

直接设 editor.wordWrap 为 "on",就能彻底去掉横向滚动条——它不是“让代码换行”,而是让编辑器在视口右边界软折行,不改变源码、不插入 \n,纯渲染层处理。
为什么按 Alt+Z 无效?先看焦点和语言设置
快捷键只对当前编辑器主区域生效。常见失效场景:
- 光标在终端、搜索框、侧边栏或调试控制台里,
Alt+Z(Windows/Linux)或Option+Z(macOS)完全没反应 - 右下角语言标识(如
JSON、Markdown)被点击后,进了 language-specific 设置,里面写了"editor.wordWrap": "off",它会覆盖全局设置 - 某些插件(比如 Vetur、Rust Analyzer)自动注入语言级配置,优先级高于用户 settings.json
验证方法:打开一个不换行的文件 → 点右下角语言名 → 选“Configure 'XXX' language settings” → 检查是否有 editor.wordWrap 相关项。
editor.wordWrap 四种取值的实际行为差异
别只记 "on",不同值对超长行(比如 base64、无空格 URL、嵌套 JSON 字符串)的处理完全不同:
-
"off":默认值,必出横向滚动条 -
"on":按单词边界折行(空格、/、-等),遇到超长无分隔符字符串仍会溢出——此时你看到的仍是横向滚动条 -
"bounded":强制在视口宽度处字符级截断,哪怕劈开一个哈希值,能真正消灭滚动条,但可读性打折扣 -
"wordWrapColumn":必须配合editor.wordWrapColumn(如120)使用,否则 fallback 到 80 列;它不响应窗口缩放,固定列数硬折
想彻底禁用横向滚动条,且能接受折行劈开长 token,"bounded" 是唯一可靠选择。
改了设置还是有滚动条?检查三个隐藏干扰点
即使 settings.json 里写了 "editor.wordWrap": "on",滚动条仍可能顽固存在:
-
editor.wrappingIndent设为"same"或"indent"时,折行后缩进错位可能导致视觉误判为“没折”,实际已折,只是对不齐 - 极长行(>50k 字符)开启换行后,VSCode 渲染引擎压力大,偶尔卡顿导致滚动条闪现;此时换
"bounded"+ 调小editor.wordWrapColumn(如100)更稳 - 终端、输出面板、调试控制台等非编辑器视图,
editor.wordWrap完全不生效——它们有自己的换行逻辑,别在这儿调
最稳妥的全局配置是:
{"editor.wordWrap": "bounded","editor.wordWrapColumn": 120}它不依赖窗口尺寸,不被语言设置轻易覆盖,也不怕超长无空格字符串。
真正容易被忽略的是:换行纯属视觉渲染,git diff、复制粘贴、格式化工具(Prettier/ESLint)看到的永远是原始单行。别指望靠它生成带硬换行的提交内容。


















