VSCode注释换行需配置语言专属editor.wordWrap为"bounded"并设wrappingIndent为"indent",因全局设置被语言级覆盖且默认不生效。

不用手动按回车,但默认不生效——VSCode 的多行注释(/* */)和行注释(//)本身不会自动折行,必须显式启用并配对关键设置,否则写到屏幕外只能拖滚动条。
为什么开了 editor.wordWrap 注释还是不换行?
常见错误是只设 "editor.wordWrap": "on",却没处理语言专属覆盖。VSCode 对注释的换行行为依赖语言扩展提供的 comments 配置,而很多语言(如 JSON、Markdown、Vue 模板)默认关掉了注释换行。
- 打开一个不换行的注释文件 → 看右下角语言标识(比如
JSON)→ 点击它 → 选Configure 'JSON' language based settings - 在弹出的 settings.json 片段里加:
"editor.wordWrap": "on"(不是改全局,是改该语言专属) - 验证是否生效:用
Developer: Inspect Editor Tokens and Scopes(Ctrl+Shift+P输入),光标停在注释里,确认 token type 是comment.block或comment.line
editor.wordWrap 选哪个值才不切单词?
"on" 会按视口宽度硬切,可能把 userConfiguration 拆成两行;"bounded" 才真正兼顾可读性——它优先按视口宽度折行,同时避开单词中间断开,前提是字体渲染支持(主流等宽字体都 OK)。
- 推荐设为:
"editor.wordWrap": "bounded" - 如果团队有固定列宽要求(如 120 字符),再加:
"editor.wordWrapColumn": 120 - 别用
"auto"或"inherit"——前者几乎不触发,后者行为不可控
换行后缩进错位、第二行顶到最左边?
这是软换行的默认渲染行为,和注释无关,而是编辑器对折行后子行的缩进策略没设好。
- 加配置:
"editor.wrappingIndent": "indent" - 效果:第二行会继承上一行的缩进空格数(比如首行缩进 4 空格,折行后也顶格缩进 4 空格)
- 注意:
editor.comments.insertSpace要保持true(默认),否则//TODO会紧贴着写,影响阅读
最容易被忽略的是 language-specific 设置优先级高于全局,哪怕你用户级设了 "on",打开一个 .json 文件照样不换行——得单独配。另外,editor.wordWrap 是纯显示层操作,复制粘贴、Git diff、格式化工具看到的仍是原始单行,别指望它生成真实换行符。


















