VSCode 的 Ctrl+/ 注释行为取决于 languageId 而非文件后缀:.jsx/.tsx 文件需设为 javascriptreact/typescriptreact 模式才能正确注释 JSX;JSON 文件原生不支持注释,须安装 JsonComments 插件。

Ctrl+/ 在 .jsx 或 .tsx 文件里只注释一行?检查 languageId 是不是 javascriptreact / typescriptreact
VSCode 的 Ctrl+/ 不看文件后缀,只认当前 editor 的 languageId。如果你在 .jsx 文件里按了 Ctrl+/ 却只加了 //,甚至报错或没反应,大概率是右下角显示的是 JavaScript 而非 JavaScript React。
临时修复:点击右下角语言标签 → 选 JavaScript React(.tsx 则选 TypeScript React)
永久生效:在工作区根目录 .vscode/settings.json 中加:
"files.associations": {
"*.jsx": "javascriptreact",
"*.tsx": "typescriptreact"
}
验证方式:Ctrl+Shift+P → 输入 Developer: Inspect Editor Tokens and Scopes → 看光标处 languageId 是否为 javascriptreact 或 typescriptreact
想用 {/* */} 注释 JSX 内部逻辑?必须用 JavaScript React 模式 + 正确选中
Ctrl+/ 在 javascriptreact 模式下,对 JSX 元素内部(比如 <div>{ /* comment */ }</div>)才自动插入 {/* */};若当前光标在 return 外的 TS/JS 逻辑区,它仍会插 // —— 这不是 bug,是语法层解析结果。
- 确保你选中的是 JSX 表达式内部内容(例如
{value}中的value),而不是整行或空格 - 不要在 JSX 标签属性值里直接按
Ctrl+/,比如className="foo"上按,会变成//className="foo",破坏结构 - 如果想注释一整段 JSX 树(如几个
<div>),得用 <code>Shift+Alt+A,但注意:它只包裹选中文本,不智能补缩进,建议手动加个换行再操作Shift+Alt+A 对 JSX 块注释失效?别硬按,先确认选区类型和语言支持
Shift+Alt+A是 VSCode 原生块注释指令,但它依赖两个前提:一是「文本选中」(不是行选中),二是当前语言支持/* */风格(javascriptreact支持,html或plaintext不走这条路)。- 错误操作:鼠标拖选多行 JSX 后直接按
Shift+Alt+A→ 可能只在每行开头加
- 错误操作:鼠标拖选多行 JSX 后直接按











