关闭Visual Studio中的自动格式化

175

我更喜欢自己的代码格式而不是使用Visual Studio的默认设置。我已经在“工具”→“选项”中关闭了自动格式化选项。在大多数情况下,这很有效。

然而,在使用任何内置重构之后,Visual Studio会用其默认设置覆盖我的设置。我该如何防止VS这样做?

17个回答

122

我在编写aspx页面时遇到了这个问题。

解决方法是打开“工具 > 选项 > 文本编辑器 > 基本 > VB 特定”并将“漂亮的列表”关闭。


注意 - 在 Visual Studio 2015 中,可在以下位置找到:

工具 > 选项 > 文本编辑器 > 基本 > 高级


我希望能够轻松地将这些复选框绑定到任何快捷键。 - Mike de Klerk
1
谢谢,这对我很有帮助。"美化"非常糟糕,函数参数被"藏在"函数名称下面,这是一个难以理解的选择,当表格垂直对齐是任何从事通信工作的人都可以告诉你最容易理解的方式。 - Chris Fox
77
我来暂停一下,欣赏一下具有选项树层次结构的美妙之处,它是这样的:「文本编辑器 -> 基础 -> 高级」。你想要进入高级部分吗?那就在基础部分下面。 - fostandy
21
@fostandy,我知道你可能已经了解了这一点,但是 basic 是这种语言的名称,而不是选项部分的名称,就像 C# 也在该部分中列出。 - Lightfire228
1
FYI,如果你正在使用较新版本的VS,它可能在“Visual Basic”下面。 - dizad87

37

禁用漂亮的列表。这是重新格式化你所做的操作的选项。我也对此感到不适,在禁用后,我的代码保持了我想要的样子,并且不会返回到之前的设置。

在此输入图片描述


我的VS2010高级版中没有这个选项。 - Maciej
2
在VS2017中修复它。 - Doug Null
2
在VS 2013中没有解决我的C++问题。我确定在更换电脑之前它没有出现故障。 - CashCow

12

正如@TheMatrixRecoder所建议的那样,对我来说有点难找,也许这会帮助其他人。 VS 2017 option can be found here

取消选中这些选项可防止在行末放置分号或按回车键时出现烦人的自动格式化。


1
截至2021年的VS 2019,这是正确的解决方案。 - Daniel L. VanDenBosch

10

在我的情况下,它是ReSharper。

测试是否为ReSharper

StackOverflow: 如何在Visual Studio中禁用ReSharper并重新启用它?

防止ReSharper重新格式化代码

StackOverflow: 有没有一种方法可以标记代码以告诉ReSharper不要格式化它?

更新2017-03-01

最终是ReSharper:

enter image description here

更新 2020-12-18

在最新版本的 ReSharper 中,有更多的选项:取消勾选此页面上的所有内容,并确保所有下拉菜单都设置为等效的

ReSharper 的“打字辅助”就像一个 3 岁的孩子试图“帮助”建立纸牌城堡。简单的回格或回车键会(很差地)重新格式化整个代码块,需要撤销或痛苦地重新格式化回原来的样子。

如果这还不够,这就是在打字时添加延迟的部分,所以有时感觉像穿着滑雪板跑步。


1
同意,花括号总是放错位置,每次敲分号时都会用重重的靴子踩在代码上。不酷。 - Contango

8

您可能已经安装了Power Tool

在这种情况下,您可以从“工具 > 选项 > 生产力工具 > PowerCommands > 常规”中关闭它。

enter image description here


5
分号或闭合括号的重新格式化无法关闭。我觉得微软竟然告诉任何人如何格式化代码,这让我感到愤怒;在那里工作时我看到的最难以阅读的代码就是这样。
我希望相邻的赋值语句垂直对齐;VS会将它们重新格式化为等号两侧都只有一个空格,而不管左侧变量的长度。这是无法容忍的。并且在编辑器选项中关闭此功能也被忽略了;考虑到像上面开头的评论,我确定这是故意的。
一致性只有在产生期望的结果时才是美德。但这不是一个。

4

以下是帮助我防止自动格式化的VS2015设置:

(还有工具>选项>文本编辑器>基本>高级,就像Tango91建议的那样)

enter image description here


3

我看到这里有许多答案是针对特定情况解决问题的。

对于我的情况,我发现IDE会自动格式化ASP页面中的JavaScript代码。

要禁用它,我取消了这个选项:

enter image description here

此外,我发现在工具栏中使用搜索查询 (CTRL+Q) 并搜索文本 format on paste 非常有帮助。正如您可以通过滚动条看到的那样,有很多选项需要检查!

enter image description here


3
在VS2017中,您可以在设置菜单中选择编码语言后进行更改。在“格式”子菜单中有一个名为“新行”的选项。请注意保留HTML标记。

2

我怀疑你在重构后是否可以禁用重新格式化。重构会改变代码,而且由于它只是文本,所以我怀疑你想要的不是将未经格式化的文本倾泻到源文件中。设置VS遵循的代码风格并遵循您喜欢的风格会更容易一些,对吗?


1
有时编码风格是无法算法化的。有时它是故意不一致的,因为一个人要为一个具有不一致编码风格的项目做出贡献,并希望遵循正在编辑的特定代码片段的编码风格。 - Palec

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