VS2019编写VB时自动将select更正为Select Case的解决方法
Visual Studio 2019 中VB代码
select自动替换为Select Case修复方案 这个异常替换和VsVim插件无直接关联,是VB编辑器自带的代码片段自动提交机制触发的识别偏差:IDE对select关键字的上下文判断存在bug,在未完成的LINQ查询、失活的字符串/注释块中,会优先匹配优先级更高的Select Case代码片段,在按回车换行时自动完成替换。
临时快速处理
- 输入
select后需要换行时,先按一次Esc关闭弹出的智能提示列表,再按回车就不会触发自动替换。 - 如果已经被替换为
Select Case,直接按Ctrl+Z撤销一次即可,本次编辑会话内不会再重复触发该位置的替换。
永久修复方案
方案1:调整自动完成触发规则(推荐,不影响正常编码效率)
- 打开顶部菜单栏「工具」→「选项」
- 左侧导航依次展开「文本编辑器」→「Basic」→「高级」
- 取消勾选以下两项配置:
- 换行时提交自动完成
- 按 Tab 键时提交代码片段
配置生效后,所有代码片段、关键字自动补全都不会在按回车/Tab时强制提交,需要手动选中对应补全项才会插入,从根源避免误替换。
方案2:修改Select Case代码片段触发快捷键(保留自动补全体验)
如果不想关闭自动提交功能,可以单独调整冲突片段的触发词:
- 打开「工具」→「代码片段管理器」,语言选择「Basic」
- 在片段列表里找到「条件和循环」分类下的
Select Case片段,点击查看本地存储路径 - 打开路径下对应的
.snippet文件,找到<Shortcut>select</Shortcut>节点,把值改成selectcase或者其他自定义触发词,保存后重启Visual Studio - 之后只有输入修改后的触发词才会调出
Select Case片段,输入select时会默认匹配LINQ查询的Select关键字,不会出现误替换。
方案3:修复字符串/注释内误触发问题
在「文本编辑器」→「Basic」→「高级」设置页,取消勾选「字符串和注释中启用自动完成」相关选项,IDE就不会在字符串字面量、注释块内触发代码片段补全逻辑,解决注释掉SQL变量定义后字符串内select被替换的问题。
内容的提问来源于stack exchange,提问作者gist076923
相关产品推荐
相关产品推荐

