Visual Studio Community 18.4.0快捷键Ctrl+/触发异常是否为Bug?
Razor页面中Ctrl+/快捷键触发字符串清空的原因及解决办法
环境信息
- Windows 11 Pro
- Visual Studio Community 18.4.0
问题复现代码
@{ var str = "/*"; Console.WriteLine("Hello World"); // <-- 将插入点置于此行末尾 str = "*/"; }
问题描述
将光标定位到Console.WriteLine("Hello World");行的末尾,按下Ctrl+/快捷键后,上下两行的var str = "/*";和str = "*/";会被修改为空值。
原因分析
这不是Visual Studio的Bug,而是Ctrl+/快捷键的块注释识别逻辑导致的:
Ctrl+/在Visual Studio中默认是「切换行注释/块注释」的快捷键- 代码中存在的
"/*"(块注释起始标记)和"*/"(块注释结束标记)字符串,被编辑器误判为块注释的边界 - 触发快捷键时,编辑器试图将这两个标记之间的内容(包括标记所在行)按块注释逻辑处理,最终导致字符串内容被清空
解决办法
- 修改字符串写法:避免直接写出完整的块注释标记,比如拆分字符串规避识别:
var str = "/" + "*"; str = "*" + "/"; - 精准触发行注释:选中目标行后再按下
Ctrl+/,确保编辑器只对选中行添加行注释,不会误触块注释逻辑 - 修改快捷键绑定:打开Visual Studio的「工具 -> 选项 -> 键盘」,搜索「Edit.ToggleLineComment」,重新绑定一个无冲突的快捷键
内容的提问来源于stack exchange,提问作者user3163495
相关产品推荐
相关产品推荐

