vscode默认不开启自动换行,必须设editor.wordwrap为"on"才永久生效;临时切换用alt+z(win/linux)或option+z(macos),仅作用于当前编辑器标签页,右下角实时显示状态。

VSCode 默认不开启自动换行,必须显式设置 editor.wordWrap 才能生效;临时开关用快捷键,永久生效靠配置项,别信“右键 → 自动换行”这种会话级操作。
怎么让当前文件立刻换行(不改设置)
按 Alt+Z(Windows/Linux)或 Option+Z(macOS),当前编辑器标签页立即切换换行状态,右下角实时显示“换行”或“不换行”。
- 只对当前激活的编辑器生效,关掉文件就恢复原样
- 光标必须在代码/文本编辑区内——若焦点在终端、搜索框、侧边栏或调试面板,快捷键无效
- 常见失效原因:当前语言有 language-specific 设置覆盖,比如
JSON文件单独设了"editor.wordWrap": "off";此时点击右下角语言标识(如“JSON”),选“Configure 'JSON' language settings”,把该语言的editor.wordWrap也改成"on"
怎么让所有文件默认自动换行(持久化设置)
打开设置(Ctrl+, 或 Cmd+,),搜 word wrap,找到 Editor: Word Wrap,下拉选 on;或者直接编辑 settings.json,加这一行:
"editor.wordWrap": "on"
- 别写成
editor.wordwrap(小写 w)——大小写敏感,写错无效 - 别选
inherit:行为不可控,容易被插件或工作区配置覆盖 - 别选
auto:名字有误导性,实际几乎等同于off,极少触发换行 - 改完不用重启,但已打开的文件可能需手动按一次
Alt+Z刷新渲染
为什么开了 editor.wordWrap: "on",base64 或长 URL 还是挤成一整行
因为 "on" 模式只在空格、连字符、斜杠等自然断点处折行;遇到无分隔符的超长串(如 minified JS、base64、十六进制 dump),它不会强行截断。
- 想强制切,可改用
"bounded"模式,并配editor.wordWrapColumn(如40):"editor.wordWrap": "bounded",<br>"editor.wordWrapColumn": 40
-
"bounded"取“视口宽度”和“40”中较小值,既防溢出,又避免小屏堆叠过密 - 注意:所有折行都是纯视觉渲染,不插入真实换行符,不影响 Git diff、保存内容或代码执行
- 极长行(几万字符)开启换行后可能卡顿,优先试
"bounded"缓解渲染压力
按固定列数(如 120)换行该怎么配
不能只设 editor.wordWrapColumn,必须配合 editor.wordWrap 的特定值才生效。
- 要严格按 120 列硬折:设
"editor.wordWrap": "wordWrapColumn"+"editor.wordWrapColumn": 120 - 要兼顾大屏展开与窄屏适配:用
"bounded"模式,同样配"editor.wordWrapColumn": 120 - 折行按字符数切,不识别单词或中文语义边界——变量名、URL、哈希值都可能被从中截断
- 中文、emoji、全角符号占位与英文不同,实际折行位置可能略偏右
最容易被忽略的是 language-specific 设置的覆盖优先级,以及 bounded 模式对长无空格串的兜底能力——很多用户卡在 base64 不换行,其实是没意识到 "on" 本身就不处理这类场景。











