如何使Visual Studio不将{放在新行上?


95

如果我有这样的代码

if(true){

然后我添加

}

它变成了

if (true)
{
}

但我希望它保持格式

if (true) {
}

即使我复制具有if这种代码的代码,它也会转换为更长的版本。

PS我知道使用较长版本是C ++和C#标准,但是我确实来自其他标准,使用较短版本对我来说更容易。

我敢打赌有些格式化程序选项可以关闭或更改。

Answers:


139

转到工具->选项->文本编辑器-> C#->代码样式->格式设置->新行

这里有很多选择。取消所有检查此处选项,切勿将左方括号放在新的一行上。

编辑

本部分New Line Options for expressions与括号内的代码放置无关,因此您无需接触它们。


8
+1谢谢。但是,当我关闭它们,然后有意将括号放在新行上时,它将它移回同一行:(有没有办法阻止它干预我没有要求其摆弄的事情?
逆向工程师

28
哪个怪物会默认启用新行?
由咖啡加油(2018年

我正在使用VS2019预览版,我必须进行更改,然后完全退出Visual Studio并重新打开它才能保留更改。如果我只是更改了它,然后尝试重新格式化文档,它将被重置为以前的设置。
伯纳德

对于Visual Studio Code,请转到“文件”->“首选项”->“设置”,然后在“扩展名”下选择要更改属性的语言。搜索 Clang_format_fallback Style(例如:对于C ++ C_Cpp: Clang_format_fallback Style)并将值从更改Visual StudioGoogle
Riccardo Bonesi

谢谢!这是Visual Studio for Unity最流行的功能之一。
SacWebDeveloper

27

请记住,如果您正在使用Resharper,则上述过程将无济于事,因为Resharper会覆盖本机VS行为。如果是这种情况,请转至Resharper>选项,代码编辑> C#>格式样式>大括号布局,将所有顶部的“大括号布局”选项设置为“行尾(K&R样式)”。

花了我一点时间来解决这个问题,所以我希望它能对某人有所帮助。


10

对于所有Mac用户,这就是我的解决方法:

首选项->源代码->代码格式-> C#源代码-> C#格式->编辑

您可以在“类别:新行”下进行更改

图片范例


9

看一看Tools -> Options,然后Text Editor -> C# -> Formatting -> New Lines


8

您可以在Visual Studio的选项中进行更改。转到工具->选项->文本编辑器-> C#->格式->新行(或类似内容,我只有德语版的Visual Studio)。然后,您可以更改要将括号放在下一行的位置,以及不希望放在哪里。我个人删除了所有选项,但是如果您想换行,例如在循环中,有很多选项可以自定义。


0

对于C ++,我可以避免VC ++将“ {”放在命名空间的新行上的唯一方法是取消选中“键入}时自动格式化块”选项:

在此处输入图片说明


-1

要对CSS执行相同的操作,您必须转到: Tools > Options > Text Editor > CSS > Advanced > Formatting > Automatic Formatting > Off

CSS自动格式化关闭

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.