VSCode默认不换行是设计使然,需设editor.wordWrap为"on"永久生效或按Alt+Z/Option+Z临时切换;language-specific设置可能覆盖全局配置。

VSCode 默认不开启自动换行,不是你配错了,是它本来就不换——所有长文本(JSON、日志、Markdown 表格、base64)都会横向溢出,必须手动干预才能“丝滑阅读”。
按 Alt+Z / Option+Z 临时切换当前文件换行
这是最快见效的操作,不用改任何设置,适合快速查看接口返回体、读日志或验长 URL:
- Windows / Linux:按
Alt+Z;macOS:按Option+Z - 右下角状态栏立刻显示“换行”或“不换行”,实时反馈
- 只作用于当前激活的编辑器标签页,关掉再打开就恢复原状
- 常见无效原因:
焦点不在编辑区(比如光标停在终端、搜索框、侧边栏),或当前语言有专属设置覆盖(如[json]里设了"editor.wordWrap": "off")
让所有文件默认开启自动换行(用户级永久生效)
改一次,所有工作区、所有文本类文件(.txt/.log/.md/.json 等)都生效,但 language-specific 设置仍可能覆盖它:
- 快捷键
Ctrl+,(Win/Linux)或Cmd+,(macOS)打开设置 - 搜索
word wrap,找到Editor: Word Wrap,下拉选on - 或者直接编辑
settings.json,加这一行:"editor.wordWrap": "on" - 别用
auto(几乎不触发)或inherit(行为不可控,易被插件/工作区覆盖) - 改完不用重启,但已打开的文件可能需手动按一次
Alt+Z刷新渲染
按固定列数(如 120)强制视觉折行
团队有代码宽度规范时要用这个,注意:它只影响显示,不插入真实换行符,复制粘贴内容不变:
- 必须同时设两个配置:
"editor.wordWrap": "wordWrapColumn"+"editor.wordWrapColumn": 120 -
on模式只按视口宽度折,wordWrapColumn才真正认列数值 - 中文、emoji、全角字符按渲染宽度计算,不是字符数,实际折行位置可能略偏右
- 想兼顾大屏利用率和窄屏可读性?改用
"editor.wordWrap": "bounded",它取“视口宽度”和wordWrapColumn的较小值
为什么开了换行,base64 或 minified JS 还是一整行?
因为 VSCode 的换行逻辑依赖自然断点(空格、斜杠、连字符等),对无分隔符超长串(如 base64、哈希值、URL)不会主动切开:
-
on和wordWrapColumn都只在断点处折行,不会字符级硬截 -
bounded模式能在视口边界处硬截,但可能把变量名或哈希从中间劈开,影响可读性 - 真要拆开这类字符串,得靠格式化工具(如 Prettier 的
printWidth)或正则替换,编辑器软换行做不到 - 最容易被忽略的一点:
language-specific 设置优先级高于用户设置,哪怕全局开了on,打开一个 .json 文件仍可能不换行——得点右下角语言标识,进它的专属配置里单独设editor.wordWrap


















