如何解决VS Code中C#扩展自动替换代码标识符的问题?
如何解决VS Code中C#扩展自动替换代码标识符的问题?
这种自动替换确实超烦的,我之前写Unity代码的时候也碰到过类似的情况!给你几个亲测有效的解决办法:
先试试更新你的C#扩展到最新版本。你现在用的v2.72.27是比较旧的版本了,后续更新的版本针对Unity相关的补全优先级问题做了不少修复,更新后大概率能直接解决这个烦人的自动替换问题。
调整VS Code的自动补全触发逻辑。打开设置(快捷键Ctrl+,),搜索
editor.acceptSuggestionOnCommitCharacter,要么直接关掉这个选项,要么编辑它的默认值,把空格从“提交字符”列表里移除。这样你打空格的时候就不会自动触发最高优先级的补全项,而是需要你手动按Tab或者Enter来选择补全,从根源上避免误替换。针对性调整C#扩展的补全优先级。在设置里搜索
omnisharp.completion.preferExplicitReferences,把这个选项设为true。这样本地定义的变量、C#关键字(比如var)会比外部命名空间里的类型(比如Unity.Entities里的I委托)优先显示,自然就不会被自动替换了。临时应急小技巧:如果不想改全局设置,写代码的时候,打完
for (int i之后先按一下Esc,再打空格,就能取消当前的补全提示,避免被替换成大写的I。
备注:内容来源于stack exchange,提问作者Zhanhong Li
相关产品推荐
相关产品推荐

