vscode默认不换行是设计使然,需设editor.wordwrap为"on"永久生效,或按alt+z/option+z临时切换当前文件;注意language-specific设置可能覆盖全局配置。

VSCode 默认不换行,不是漏配,是设计如此;要让长代码、日志、JSON 或 Markdown 表格自动折行显示,必须显式配置 editor.wordWrap,否则只能拖水平滚动条。
怎么立刻让当前文件换行(临时切换)
不用改任何设置,适合快速查看日志、验接口返回体、读长 Markdown 表格:
- Windows / Linux:按
Alt + Z - macOS:按
Option + Z - 右下角状态栏会实时显示“换行”或“不换行”
- 注意:只作用于当前编辑器标签页,关掉文件即失效;焦点必须在编辑器主区域(不在终端、搜索框、侧边栏)
怎么让所有文件默认自动换行(用户级永久生效)
改一次,所有工作区、所有支持文本编辑的文件类型都生效(除非被语言专属设置覆盖):
- 快捷键
Ctrl + ,(Win/Linux)或Cmd + ,(macOS)打开设置 - 搜索
word wrap,找到Editor: Word Wrap,下拉选on - 或直接编辑
settings.json,加这一行:"editor.wordWrap": "on" - 避免用
auto(几乎不触发)或inherit(易被插件/工作区配置意外覆盖)
怎么按固定列数(如 120)视觉上强制换行
这不是插入真实换行符,只是编辑器渲染时的“软折行”,复制粘贴内容不变:
- 必须同时设两个配置:
"editor.wordWrap": "wordWrapColumn"+"editor.wordWrapColumn": 120 -
on模式按视口宽度折,不认列数;只有wordWrapColumn模式才真正参考该数值 - 中文、emoji、全角字符按渲染宽度计算,不是字符数,实际折行位置可能略偏右
- 想兼顾大屏利用率和宽度限制?改用
"editor.wordWrap": "bounded",它取“视口宽度”和“120 列”中较小者
为什么开了自动换行,base64 或 minified JS 还是一长条
on 和 wordWrapColumn 都只在空格、连字符、斜杠等断点处折行;遇到无分隔符的超长串(如 base64、URL、十六进制 dump),它们不会切。
此时唯一能强制截断的是 bounded 模式——它会在视口边界处按字符硬截,但可能把变量名或哈希值从中间劈开,影响可读性。真要拆开这类字符串,得靠格式化工具(如 Prettier 的 printWidth)或正则手动处理,编辑器软换行做不到。
另外,常见失效原因包括:当前文件语言模式单独设置了 editor.wordWrap(比如 "[json]": { "editor.wordWrap": "off" })、某些扩展(如 Prettier)重置了该行为、或焦点不在编辑器主区域。











