如何使用Visual Studio + ReSharper禁用不需要的自动完成?

时间:2011-04-09 18:38:47

标签: c# visual-studio resharper intellisense

我正在使用Visual Studio 2010和ReSharper 5.

我在.cs文件的顶部定义了这个。

#if X86
using size_t = System.Int32;
#else
using size_t = System.Int64;
#endif

然后我可以使用size_t并知道它是一个本机整数,如果编译为32位汇编则为32位,如果编译为64位汇编则为64位。 (对于那些好奇的人来说,替代方案总是使用Int64,或者在运行时在IntPtr.Size == 4上进行分支并且有两个版本的代码。我更喜欢这个解决方案。)

但是,如果我键入size_t并命中空格,它将自动转换为Int64(如果定义了X86,则为Int32)。显然这是不可取的。

我进入了ReSharper选项并转到了Environment \ Intellisence \ Completion行为并禁用了“自动完成单个项目:”下的所有复选框。

它仍然会发生,还有什么我可以尝试的吗?

5 个答案:

答案 0 :(得分:24)

我遇到了类似的问题(使用VS2013和Resharper 8.2)。

要在每次“空格”命中时停止不需要的自动完成,我必须在VS和R#选项中的“空格”上禁用IntelliSense完成:

  1. VS>工具>选项>文本编辑器> C#> IntelliSense> “通过按空格键”复选框
  2. VS> Resharper>选项>环境> IntelliSense>完成字符> C#“空间完成”复选框
  3. 干杯!

答案 1 :(得分:17)

一种解决方案是切换到intellisense的建议完成模式。切换的默认键绑定是Ctrl+Alt+Space。在建议模式下,如果您明确选择要更改的值,它将仅更改您键入的内容。你可以在这里阅读更多相关信息:

http://blogs.msdn.com/b/zainnab/archive/2012/05/01/9943045.aspx

答案 2 :(得分:5)

默认情况下关闭IntelliSense选项

在“工具”菜单上,单击“选项”。

选择文本编辑器文件夹。

选择要自定义IntelliSense的语言的文件夹。

在“常规”属性页中,清除您不需要的IntelliSense功能的复选框:

自动列表成员适用于列表成员

参数信息适用于参数信息

答案 3 :(得分:4)

您可以使用转义键取消当前的智能感知建议。

答案 4 :(得分:0)

在VS 2019和ReSharper 2020中,切换完成模式不能解决问题-按下空格键时会应用建议。 要使其正常运行,必须去:

Extensions -> ReSharper -> Options... -> IntelliSense -> Completing Characters

并取消选中Complete on space以获得相应的编程语言

ReSharper IntelliSense settings