VSCode的editor.wordWrap默认不跨项目同步是因为设置优先级为语言专属>工作区>用户级,常见JSON、Markdown等语言默认关闭换行,需在对应语言设置或工作区配置中显式设为"on"。

自动换行配置默认不跨项目同步
VSCode 的 editor.wordWrap 默认是用户级设置,写在用户 settings.json 里就对所有项目生效——但很多人误以为它“没同步”,其实是被工作区或语言专属设置覆盖了。真正的问题不是“怎么同步”,而是“为什么看起来不同”。
检查 language-specific 设置是否覆盖全局
打开一个不换行的文件(比如 package.json),看右下角语言标识(如 JSON),点击它 → “Configure 'JSON' language based settings”。如果里面写了 "editor.wordWrap": "off",那这个语言的设置就优先于用户级的 "on"。
- 常见被覆盖的语言:JSON、Markdown、Log、YAML、XML —— VSCode 默认关掉它们的换行
- 修复方式:在该语言设置里删掉
"editor.wordWrap": "off",或显式设为"on" - 想批量处理?在用户
settings.json里加 language-specific 块:
{
"[json]": {
"editor.wordWrap": "on"
},
"[markdown]": {
"editor.wordWrap": "on"
}
}
工作区 settings.json 会屏蔽用户设置
如果你在某个项目根目录下有 .vscode/settings.json,且里面写了 "editor.wordWrap": "off",那这个项目就永远用不到你用户级的 "on"。
- 确认方法:按
Ctrl + Shift + P→ 输入Preferences: Open Workspace Settings (JSON),检查是否存在冲突配置 - 解决办法:删掉工作区里的
editor.wordWrap行,或改成"on" - 团队协作时建议:把
"editor.wordWrap": "on"写进工作区settings.json,而不是依赖个人设置
远程开发(SSH/WSL)需单独确认服务端版本和配置
你在本地开了 editor.wordWrap,但连接到远程机器后不生效,大概率是远程 VS Code Server 版本太低,或者远程端的用户配置没同步。
- 先运行
Help: About看远程窗口右上角版本号 —— 必须 ≥ 1.84 才支持完整换行逻辑 - 远程的
settings.json是独立的,不会自动同步本地配置;可通过Settings Sync扩展或手动复制 - 注意:Remote-SSH 默认禁用部分 UI 功能,某些 language-specific 设置可能被重置


















