在Visual Studio中关闭自动格式化


134

我是代码纯粹主义者,更喜欢我自己的代码格式样式,而不是Visual Studio的默认设置。我已经关闭了“工具/选项”中的自动格式设置选项。在大多数情况下,它可以工作。

使用任何内置重构后,Visual Studio会使用其默认设置来掩盖我的设置。如何阻止VS这样做?


9
@ user1142958在开放源代码项目中每隔几个月就开展一次,在业务中每隔几年就遇到一次@ hot114,我遇到了一些坚持认为他/她的风格比标准更好的热点。通过多年的研究,已经确定样式标准可以提高代码的可读性和可维护性。当开发人员提出自己的“更好”的方法时,通常会倾向于甩掉团队中的其他开发人员。阅读此示例-woldlab.caltech.edu/~king/swc/www/readstyle.html
senfo 2013年

29
@senfo都是很好的信息,但是在某些情况下Visual Studio的内置格式器无疑是坏掉的(例如stackoverflow.com/questions/6459861/…)。在那种情况下,我宁愿用自己的智慧来遵循我认为合适的标准,而不要依靠VS的“风格”尝试。
丹·贝查德

5
@senfo-VS .cshtml自动格式化,尤其是在Razor方面已损坏。在其他部分同意您的意见,但这不是功能-它是一个错误
罗斯

5
当“标准”看起来像两只猫在键盘上打架时,一致性就不是美德。给我打电话一个热门话题,但是额外的时间使代码清晰易读是值得的。我的经验是完全一致的:对一致性(sic)最热衷的人会推广他们能想到的最不可读的代码。
克里斯·福克斯

5
代码纯粹主义者是一个以正确的格式输入文本的人,因此不需要(可能会损坏)自动格式。
安德斯·林登18'Feb

Answers:


106

aspx页面中编写VB时遇到了这个问题。

解决方案是转到“工具>选项>文本编辑器>基本> VB特定”,然后关闭“漂亮列表”。


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

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


我希望我可以轻松地将这些复选框绑定到任何短键。
Mike de Klerk 2015年

1
谢谢,这对我有用。“漂亮”是非常糟糕的,其功能参数“藏在”功能名称的下面,当表格垂直对齐方式是通信中的任何人都能告诉您的最容易理解的方式时,这是一个莫名其妙的选择。
克里斯·福克斯

54
我只是停下来欣赏一下选项树层次结构的美妙之处text editor -> basic -> advanced。“哦,是的,您想要高级部分”?这是基本原则
fostandy

12
@fostandy,我知道您可能知道这一点,但这basic是语言的名称,而不是选项的部分,因为C#也在此列出。
Lightfire228 '16

32

禁用漂亮列表。它是重新格式化您正在做的事情的选项。我对此有同样的不适,执行完之后,我的代码仍保持我想要的状态,并且不会返回到先前的设置。

在此处输入图片说明


我的VS2010专业版中没有此选项-Maciej
2013年

2
在VS2017中修复它
Doug Null

未能在VS 2013中解决我的C ++问题。而且我确定在更换机器之前它没有损坏
CashCow

6

就我而言,是ReSharper。

测试ReSharper是否

StackOverflow:如何在Visual Studio中禁用ReSharper并再次启用它?

防止ReSharper重新格式化代码

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

更新资料

最后是ReSharper:

在此处输入图片说明


2
谢谢,这让我发疯。
西蒙·阿诺德

1
同意,花括号总是放在错误的位置,每当您击中一个分号时,它实际上就会用沉重的靴子踩在代码上。不酷
Contango

5

您可能已经安装了Power Tool

在这种情况下,您可以从“工具>选项>生产率Power Tools> PowerCommands>常规”将其关闭。

在此处输入图片说明


4

正如@TheMatrixRecoder的建议为我找到了一些发现,因此这可能会对其他人有所帮助。 VS 2017选项可以在这里找到

当您在行末放置分号或按回车键时,Unitick这些选项可防止烦人的自动格式化。


3

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


2

我怀疑您可以在重构后禁用重新格式化。重构更改代码,由于它只是文本,我怀疑您想要的是它只是将未格式化的文本转储到源中。设置VS坚持您喜欢并遵循的代码样式是否容易一些?


1
有时,编码风格无法算法化。有时这是故意不一致的,因为一个人以一种不一致的编码样式来贡献一个项目,并且想要坚持要编辑的特定代码段的编码样式。
Palec 2015年

2

分号或右大括号上的格式不能关闭。我发现这真令人恼怒,Microsoft会冒昧地告诉任何人如何格式化代码。我见过的最模糊的代码是在那里工作。

我希望相邻的作业垂直对齐;VS将其重新格式化为等号两侧的一个空格,而不考虑左侧变量的长度。这是无法忍受的。并在编辑器选项上将其关闭将被忽略;给定像上面的揭幕战的评论,我敢肯定这是故意的。

一致性只有在导致期望的结果时才是一种美德。这不是一个。


2

VS2015设置帮助我防止了自动格式化:

(以及工具>选项>文本编辑器>基本>高级,就像建议的Tango91一样)

在此处输入图片说明


1

按照工具->选项->文本编辑器-> CSS->格式选择“紧凑规则”,然后取消选中“层次缩进”


文本编辑器- > CSS或HTML - >选项- >缩进- >(O)无
鲍勃·斯坦因

1

Clang格式就是这种情况。以前,整个文件会在保存文件时自动格式化,这让我发疯(对于未启用Clang格式的存储库)。

将“工具->选项-> LLVM / Clang-> ClangFormat->保存时格式化->启用”设置为False后,这种行为就消失了。

保存时的ClangFormat格式


0

您可以调整代码格式的设置。我总是关闭所有多余的换行符,然后就可以很好地格式化代码了。

如果您尽可能根据自己的喜好来调整设置,那么每当使用重构时,这将使您的工作量最小化。


0

除了Tango给出实际解决方案的答案外,也许有些人实际上想跟上自动格式的最新发展,但又不想让您改变相关的更改。我建议您修改文件以激活自动格式,签入那些更改,然后继续进行您想进行的实际更改。

这样,您的代码可以保持最新,但是您的签入将是相关的。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.