VSCode默认不折行,必须设editor.wordWrap为"on"才按编辑器宽度自动折行;该模式按单词边界软折行,不影响文件内容,且受语言级设置覆盖。

直接结论:VSCode 默认不折行,必须显式设 editor.wordWrap 为 "on"、"wordWrapColumn" 或 "bounded" 才生效;“自定义换行位置”只在 wordWrapColumn 模式下由 editor.wordWrapColumn 控制,且仅影响显示,不改文件内容。
怎么让长代码行按编辑器宽度自动折行(最常用)
这是日常写代码、读日志、看接口响应体最省心的方式。它随窗口缩放实时调整折行点,不用操心列数。
- 打开设置:
Ctrl + ,(Win/Linux)或Cmd + ,(Mac),搜索word wrap - 找到
Editor: Word Wrap,下拉选on - 或直接在
settings.json中加一行:"editor.wordWrap": "on" - 注意:
on是“按单词边界”折行——遇到空格、/、-等才断;超长无空格字符串(如 base64、URL)仍会溢出
怎么指定在第 120 列(或任意列)视觉上折行
这不是“插入换行符”,而是软折行(soft wrap),只改变你看到的样子。要真正按列截断并保存换行,得靠 Prettier、Black 等格式化工具。
- 必须同时配置两个项:
"editor.wordWrap": "wordWrapColumn"+"editor.wordWrapColumn": 120 - 单独设
editor.wordWrapColumn但没改wordWrap模式,完全无效 - 中文、emoji、制表符(
\t)会影响实际折行位置——VSCode 按渲染宽度算,不是纯字符数 - 等宽字体下较准;非等宽字体(如默认的 Segoe UI)可能偏移 1–3 字符
为什么改了设置,某些文件还是不折行
语言级设置优先级高于全局,哪怕用户设置里写了 "editor.wordWrap": "on",只要某个语言块把它覆盖成 "off",就失效。
- 打开一个不折行的文件(比如
package.json),点击右下角语言标识(如JSON)→ 选Configure 'JSON' language specific settings - 检查是否出现类似
"[json]": { "editor.wordWrap": "off" }的配置 - 常见被覆盖的语言:markdown、plaintext、git-commit、log、yaml —— 它们常被插件或工作区配置默认关掉折行
- 临时验证:按
Alt + Z(Win/Linux)或Option + Z(Mac)手动开关当前文件,若能生效,说明是配置覆盖问题
折行后第二行缩进错位、看着割裂怎么办
默认软折行会让第二行顶到行首,破坏嵌套结构的视觉连贯性,尤其在 JSON、Python 缩进块或链式调用中明显。
- 加这一行配置:
"editor.wrappingIndent": "indent" - 效果:折行后的子行会继承上一行的缩进层级,对齐更自然
- 可选值还有
same(与首行同缩进)、none(默认,顶格);indent是多数场景最合理的 - 注意:这个配置只在
editor.wordWrap启用时起作用,单独设无效
最容易被忽略的是:VSCode 的折行逻辑完全不参与文件保存、Git diff、复制粘贴或编译过程——它只是渲染层开关。如果你发现某处“折了但复制出来还是单行”,那是正常行为;如果想让换行真正写入文件,得走格式化流程,而不是调编辑器设置。











