Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Visual Studio 2015中单击空格键时停止默认的自动完成行为_C#_Ide_Settings_Visual Studio 2015_Options - Fatal编程技术网

C# 在Visual Studio 2015中单击空格键时停止默认的自动完成行为

C# 在Visual Studio 2015中单击空格键时停止默认的自动完成行为,c#,ide,settings,visual-studio-2015,options,C#,Ide,Settings,Visual Studio 2015,Options,注意这里的关键字是“默认”。我知道我可以点击escape,默认行为就会中止。我不想每次IDE认为它知道我想要什么时都按escape键。2013年我不必这么做 附录2我似乎仍然难以传达我的目标。当我按下空格键时,我什么都不想发生。。。我只想在屏幕上显示一个空格字符。我唯一希望IDE实际插入建议的时间是在我点击选项卡栏时。我希望这更清楚 这让我快发疯了。2013年及之前允许您设置完成字符(可能是resharper?),但在2015年,我发现没有办法停止自动完成的默认行为 例如,假设我有一个类Foo,

注意这里的关键字是“默认”。我知道我可以点击escape,默认行为就会中止。我不想每次IDE认为它知道我想要什么时都按escape键。2013年我不必这么做

附录2我似乎仍然难以传达我的目标。当我按下空格键时,我什么都不想发生。。。我只想在屏幕上显示一个空格字符。我唯一希望IDE实际插入建议的时间是在我点击选项卡栏时。我希望这更清楚

这让我快发疯了。2013年及之前允许您设置完成字符(可能是resharper?),但在2015年,我发现没有办法停止自动完成的默认行为

例如,假设我有一个类
Foo
,但是我还没有指定名称空间,但是我在指定的名称空间中有一个类
FooBar
,如果我键入:

public void DoSomething(Foo// <-- then a space)

public void DoSomething(Foo/Edit->Intellisense->切换完成模式

发件人:


"您还可以更改为建议模式,在该模式下,仅将键入的文本插入代码中。例如,如果您输入的标识符不在列表中,然后按TAB键,则在完成模式下,该项将替换键入的标识符。若要在完成模式和建议模式之间切换,请按CTRL+ALT+空格键或单击“编辑/智能感知”/切换完成模式。“

对于所有在Visual Studio代码中有相同问题的用户,请将此行添加到用户设置中:

"editor.acceptSuggestionOnCommitCharacter": false

我刚在Visual Studio中通过以下方式实现了这一点:

文件首选项设置>切换“建议触发字符”

我还关闭了“提交角色时自动建议”和“输入时接受建议”
-但是,您可能需要这些设置。

如果您使用Vs2017,并且每次启动Vs时设置都会重置,我创建了一个小脚本,使用Visual Commander Extension在启动时自动禁用空间完成:


更改编辑器的设置:在输入时接受建议到关闭时接受建议如果您使用的是Resharper和Visual studio 2017,您可能需要使用现有答案的组合来停止按空格键时的自动完成行为。这对于添加答案的注释来说太长了

  • 确保在Visual studio中关闭/取消选择intellisense切换完成模式(如其他答案中所述)。注意:如果打开顶部VS工具栏中的“文本编辑器”图标,您将看到一个额外的图标,该图标会亮显打开和关闭,显示intellisense是打开还是关闭。 及

  • 在工具栏上的resharper下拉列表(resharper>选项…)中,转到IntelliSense>完成字符>然后取消选中C#的“在空间上完成”框

  • 现在按空格键时不会自动完成(仍可以使用tab等键自动完成)


    (旁白:如果使用VSVim,这种空间上的自动完成非常糟糕,因为默认情况下,您无法使用典型的vim ESC键“退出”自动完成模式。例如,如果不更改为其他自动完成选项,甚至很难键入变量/函数的
    static
    修饰符。)

    有关Visual Studio代码(2020)的当前版本,您可以切换到建议模式,方法是转到文件>首选项>设置,然后转到扩展名>类型脚本,然后选中类型脚本:禁用自动类型获取。或者,在转到设置后,您可以在中搜索“类型获取”“搜索设置”,然后选中“类型脚本:禁用自动类型获取”

    Visual Studio 2019 Pro->选项->文本编辑器->高级->禁用“响应代码完成”

    这将禁用完成模式,但在VS重新启动时不会生效。 您必须在每次重新启动后再次启用和禁用它,这比使用“切换完成模式”菜单选项更糟糕


    因为它在选项中,所以可能是一个永久设置。

    在按空格之前按Ctrl+Dot。这会改变默认行为吗?可能会重复“否”,我不想取消它,我想改变默认行为。取消它很容易,只是很烦人。我不想想出预防性的击键。我想要当我按下空格键时,自动完成的默认行为是不自动完成。非常感谢,这是我多年来遇到的最烦人的默认行为。我无法对此进行足够的升级。我在选项和web上搜索了数小时,但我找不到这个确切的设置。不幸的是,“切换完成模式"对我来说是灰色的。我和@youen在一起,希望多次更新此评论!我创建了一个帐户,只是为了更新此评论。Microsoft,这是我在专业软件中遇到的最糟糕的默认行为。最后修复此问题。OMG。谢谢。如果我在空格后面键入内容,它只会不断完成错误的事情uickly。我测试了这个,它似乎说明了一个错误配置文件。将此设置为on不起任何作用。将此设置为off不起任何作用。但是更改此设置会导致visual studio记住编辑/切换完成模式,它在启动时未注册该模式。这似乎是针对visual studio代码的。