VSCode取消多行注释时快捷键异常,询问正确移除块注释的快捷键
VSCode块注释残留前置星号问题解决
问题本质
VSCode默认的块注释切换逻辑非常死板:只认包裹整个注释块最开头的/*、最末尾的*/这两个标记,完全不会识别文档注释格式下每行开头的格式性*。所以按取消注释快捷键的时候,它只会把首尾两个标记删掉,中间每行的*因为属于注释块内部的内容,根本不会被判定为需要删除的标记,最后就剩一堆带单独*的行。
可操作的解决方案
- 方案1:从源头调整块注释生成规则,彻底避开残留问题
要是你本来就不需要带每行前导*的标准文档注释格式,这个方法最省心:- 打开VSCode设置(Windows/Linux快捷键
Ctrl+,,Mac快捷键Cmd+,) - 搜索
editor.blockComment配置项 - 取消勾选
文档注释(docComment)选项,也可以直接在settings.json里写入如下配置:
调整后新生成的块注释为纯"editor.blockComment": { "docComment": false }/* 内容 */的包裹格式,取消注释时不会有额外标记残留。注意这个配置只影响新创建的注释,已经存在的、带每行前导*的旧注释块还是会有之前的残留问题。 - 打开VSCode设置(Windows/Linux快捷键
- 方案2:针对已有的文档格式注释块,用内置功能一键清理
- 把光标直接定位到待取消的块注释内部
- 触发快速修复菜单:Windows/Linux按
Ctrl+.,Mac按Cmd+. - 在弹出的选项中选择删除块注释,即可自动移除全部
/*、*/标记以及每行前置的格式性*,只保留注释里的正文内容,没有任何残留。
- 方案3:自定义快捷键,保持原有操作习惯不变
如果你平时还是需要写带每行前导*的文档注释,又不想每次都按快速修复菜单,可以把原来的块注释切换快捷键改成联动的双逻辑,实现和原来一样的操作体验:- 打开keybindings.json自定义配置文件:按
Ctrl+K Ctrl+S(Mac为Cmd+K Cmd+S)打开快捷键管理界面,点击右上角的打开文件图标,进入自定义快捷键编辑页面 - 写入如下配置:
配置完成后,选中带前置*的块注释按// 当选中内容包含块注释时,按快捷键全量清理所有注释标记,无残留* { "key": "shift+alt+a", "command": "editor.action.transformTo", "when": "editorTextFocus && !editorReadonly && editorHasSelection", "args": { "transformers": [ { "type": "replace", "findRegex": "/\\*\\s*\\n(\\s*\\*\\s*)?(.*?)(\\s*\\*\\s*)?\\n(\\s*\\*\\s*.*\\n?)*\\s*\\*/", "replaceString": "$2" } ] } }, // 当选中普通代码时,按快捷键生成标准文档格式的块注释 { "key": "shift+alt+a", "command": "editor.action.blockComment", "when": "editorTextFocus && !editorReadonly && editorHasSelection && !selectionsContainBlockComment" }Shift+Alt+A,就会直接把所有注释标记全部移除,不会再出现残留单独*行的问题;选中普通代码按同一个快捷键,还是会生成你习惯的标准文档注释格式。 - 打开keybindings.json自定义配置文件:按
内容的提问来源于stack exchange,提问作者pokus
相关产品推荐
相关产品推荐

