如何在Visual Studio中关闭括号/引号自动完成功能

138

正如标题所述:我如何在MSVS中关闭括号/引号/花括号的自动完成? 我主要关注C#和XAML,但其他文本编辑器也不错。

编辑: 目前我正在使用带有以下扩展的MSVS 11:

  • AnkhSVN
  • Concurrency Visualizer
  • PreEmptive Analytics Aggregator Visualizer
  • MSVS PerfWatson
  • VsGraphicsDebuggerPkg
  • Web Tooling Extensions

它们中的大部分必须是随着MSVS安装而预先安装的,因为我不能回忆起自己安装它们;)

EDIT2: 我正在使用版本11.0.50323.1 QRELB的MSVS。

EDIT3:
我发现这个问题在当前可用的msvs11中不会出现。


1
你有像ReSharper这样的扩展吗?我不知道是否有内置功能可以做到这一点。 - cadrell0
我编辑了我的问题,以回答你的问题。 - SOReader
这一定是Visual Studio 11的新功能,我相信它已经更名为2012了。由于您正在使用beta/rc版本,您可能需要使用特定于版本的标签。 - cadrell0
9个回答

192
如果有人在使用VS 2013时遇到此问题,现在已经有相应的设置了。我刚重置了我的VS设置,它开始再次自动补全括号。对我而言,这不是生产力工具。你可以在此处开启/关闭它:

输入图像说明


1
根据问题的标签,在VS2012中无法工作。 另一个答案评论中的Resharper建议确实有效。 - nathanchere
18
是否有一种方法可以禁用双引号的自动完成而不仅仅是花括号?当您开始键入开放性的双引号时,它会自动完成闭合双引号,这对我来说很烦人(直到VS2013之前都不是这样的)。 - TheCuBeMan
1
对于 C/C++,只需选择“工具”>“选项”>“文本编辑器”>“C/C++”>“自动括号完成”。 - Doug Null
8
在VS 2015中,它已从C#移动到“所有语言”。 - Stephen Hosking
1
为什么在文本编辑器-> C#设置中搜索“括号”时,这个选项却不显示,这超出了我的理解范畴... http://imgur.com/a/vW2Z2 - fostandy
显示剩余4条评论

39

如果有人偶然使用Resharper,您可能还希望调整设置

(Resharper Menu, Options) - Environment -> Editor -> Editor Behavior 

(Resharper Menu, Options) - Environment -> Intellisense -> Completion Behavior

根据您的个人偏好,在其他人提到的内置 Visual Studio 设置之外。


其中第一个对我起作用(顺便说一下,我不是使用C#,而是使用ReSharper C++的C++)。在VS选项中更改Visual Studio设置还不够。 - Stefan Monov
2
补充我的上一个评论:仅更改R#设置是不够的。需要同时更改VS设置和R#设置。 - Stefan Monov
这也适用于使用最新版本ReSharper的Visual Studio 2017。 - Mike Upjohn
我不明白这两个设置之间的区别。我把它们都关闭了! - Mohammad Dehghan

31

对于Visual Studio 2017:

仅限于C#:

工具 > 选项 > 文本编辑器 > C# > 常规 > 自动括号完成

所有语言:

工具 > 选项 > 文本编辑器 > 所有语言 > 常规 > 自动括号完成


7
无法在VS 2017中工作。它无法保存此选项。 - Jan Macháček
@JanMacháček,我好像漏掉了路径中的“文本编辑器”部分。现在你应该能够找到它了。 - Soenhay
也适用于VS 2019。 - Aria
不适用于引号!!! - Yola
已在VS2022中测试,对于括号和引号仍然有效。 - Soenhay

12

我知道你没有提及“Productivity Power Tools”,但是关闭它非常容易。我相信可以通过nuget下载这个包。

下载后,进入“工具”-“选项”-“Productivity Power Tools”,然后在右侧找到“自动括号完成”并关闭它!


1
我没有提到它,因为我没有使用它 - 这是唯一的原因。不幸的是,在我安装IDE时,PPT无法在msvs 11下运行。 - SOReader
1
好的,这是我最后的尝试。你可以安装 ReSharper 的 30 天试用版然后将其关闭。在选项 - 环境 - 编辑器下。 - retslig
@retslig,这解决了我的vs 2010括号自动补全问题!谢谢。 - Chris

10

在Visual Studio 2015中关闭XAML的双引号自动完成:

Tools -> Options -> Text Editor -> XAML -> Miscellaneous -> Attribute quotes

3
谢谢您。在XAML编辑器中使用起来很糟糕。我不知道他们怎么想的,认为在您试图输入XAML时还要伸手去按“End”、“->”或“Del”的键会提高工作效率。 - xr280xr

6

针对使用 2017 版本的 Mac 上的 Visual Studio 的用户:

首选项 > 文本编辑器 > 行为 > 自动行为 > “插入匹配的大括号”

enter image description here


这个答案并没有回答如何关闭自动引号补全。有人知道怎么做吗?在检查Visual Studio 2017的相同区域时,我没有找到引号和自动补全的命令。 - Su Llewellyn
这个设置似乎并没有真正禁用自动插入括号。需要重新启动Mac上的VS吗?尝试关闭并重新打开文件,但没有成功。使用了vs vim扩展,不知道是否有冲突... - Max

1

Visual Studio 的 17.2.3 版本:工具 -> 选项 -> 文本编辑器 -> C# -> 取消勾选自动括号完成。


0
关于 ReSharper,您可能还需要像 Nate Cook 描述的那样在调整设置后清除缓存。

enter image description here


嗨@albin,这看起来像是一条评论,除非您添加更多信息,使您的答案成为原始问题的完整解决方案。 - Giulio Caccin

0

点击工具/选项菜单,进入文本编辑器/所有语言/常规,然后禁用“自动括号完成”选项。

您还可以使用关键字“括号”搜索该选项


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接