VSCode更新后editor.wordWrap重置为"off"是v1.88+默认行为变更,并非Bug;需在settings.json中明确定义"editor.wordWrap": "wordWrapColumn"及"editor.wordWrapColumn": 120,并确保editor.wrappingStrategy为"advanced",同时检查工作区配置是否被正确加载。

VSCode 更新后 editor.wordWrap 被重置为 "off",不是 Bug,是默认行为变更——新版 VSCode(v1.88+)对未显式配置的编辑器换行策略做了更保守的处理,尤其在新用户配置或重装后首次启动时会跳过继承旧值逻辑。
为什么更新后自动换行突然失效?
核心原因是 VSCode 不再“推测”你想要换行,而是严格按 settings.json 中是否明确定义 editor.wordWrap 来决定。即使你之前设过,只要这次更新触发了配置迁移、workspaceStorage 重建或用户目录异常,该设置就可能被忽略或回退到内置默认值 "off"。
- 检查方式:打开命令面板(
Ctrl+Shift+P),输入Preferences: Open Settings (JSON),确认是否存在"editor.wordWrap": "on"或"editor.wordWrap": "wordWrapColumn" - 常见误判:你以为开启了“自动换行”,其实只是靠
editor.wordWrapColumn+editor.wrappingStrategy: "simple"的组合效果,而新版默认禁用 wrappingStrategy 的 fallback 行为 - 输出面板、调试控制台等非编辑器区域不受
editor.wordWrap控制,它们走的是独立配置项terminal.integrated.wordWrap或output.wordWrap
如何精准恢复你习惯的换行效果?
别只设 "on" ——它在长标签名或 URL 场景下容易撑破视口。真正稳定可控的是 "wordWrapColumn" 模式,配合列数约束:
- 在
settings.json中添加或修正这一段:"editor.wordWrap": "wordWrapColumn", "editor.wordWrapColumn": 120
- 若希望所有文件统一(包括 Markdown、XML 等),加语言专属覆盖:
"[markdown]": { "editor.wordWrap": "wordWrapColumn" }, "[xml]": { "editor.wordWrap": "wordWrapColumn" } - 注意:不要设
"bounded",它已被弃用,VSCode v1.85 起会静默转为"off"
换行还受哪些隐藏配置干扰?
editor.wordWrap 不是孤立生效的,以下三项常被忽略但直接影响最终表现:
-
editor.wrappingStrategy:必须为"advanced"才支持按字符边界断行(如中文、连字符);设成"simple"仅按空格断,对无空格长字符串无效 -
editor.renderWhitespace:设为"boundary"或"all"时,换行符会显示为↵,容易误以为“没换行”,其实是渲染了断点标记 -
editor.lineHeight过小(如1)会导致换行后行间距挤压,视觉上像“挤在一起”,建议保持0(自动)或 ≥1.2
最易被忽略的一点:工作区(.vscode/settings.json)里的 editor.wordWrap 会优先于用户级设置,但 VSCode 更新后有时不会自动加载工作区配置——关掉所有窗口,删掉 workspaceStorage 文件夹再重启,才能确保它被重新读取。


















