Visual Studio是否有格式代码快捷方式?


429

Eclipse中有一个快捷键,Ctrl+ Shift+ F,这重新缩进代码,并修复注释和空行。Visual Studio 2010是否具有等效功能?


VS是Eclipse的一部分。VS不会修复空白行,也不会重排注释。要获得整个辣酱玉米饼馅,您需要reSharper或类似的东西。
约翰·汉克

为什么用3个特定版本的Visual Studio,Visual Studio 2010,Visual Studio 2012和Visual Studio 2013标记?
彼得·莫滕森

Answers:


734

具有 C#键绑定的 Visual Studio

为了回答特定的问题,在C#中,您可能正在使用C#键盘映射方案,该方案默认情况下将使用这些热键:

Ctrl+ ECtrl+ D格式化整个文档。

Ctrl+ ECtrl+ F格式化选择。

您可以在菜单工具选项环境键盘中进行更改(通过选择其他“键盘映射方案”,或将各个键绑定到命令“ Edit.FormatDocument”和“ Edit.FormatSelection”)。

如果您未选择使用C#键盘映射方案,则可能会发现按键快捷方式有所不同。例如,如果您不使用C#绑定,则密钥可能是:

Ctrl+ K+ D(整个文档)

Ctrl+ K+ F(仅精选)

要找出哪些键绑定适用于的Visual Studio副本,请查看菜单编辑高级菜单 -键显示在菜单项的右侧,因此很容易发现它们在系统中的位置。


(请不要修改这个答案来改变上述哪些键绑定你的系统有!)


1
我的快捷方式绑定似乎有所不同。但是菜单项的位置肯定有帮助。我需要考虑这些选项...
Soumya

2
此外,在“工具”>“选项”中,转到“文本编辑器”>“ C#”>“格式”,然后可以控制其格式化代码的方式。
詹森·威廉姆斯

61
这些快捷方式(以Ctrl + E开头)仅对Visual Studio 2005和2008有效。使用快捷键Ctrl + K + D和Ctrl + K + F在Visual Studio 2010中实现相同(如果使用的是默认配置)。
2012年

3
确实,但是为了清楚起见:vs2010的C#设置仍然如我的回答中所述。
杰森·威廉姆斯

它还修复了突然变成仅一行代码的代码。我使用VS 2012
Flash3在

108

Ctrl+ K+ D(整个文档)

Ctrl+ K+ F(仅精选)


我只是注意到它们有所不同。当我格式化整个文档(Edit.FormatDocument)时,也会进行一些代码清除,例如,我已经设置了Add/remove braces for single-line control statements(确实很糟糕的描述,因为用户不知道激活它会发生什么事^^),因此格式化程序始终更改if(foo) bar;if(foo) { bar; }。执行Edit.FormatSelection不会改变它。可能是个错误,如果我找不到任何东西,会报告它。
bugybunny

好的,我只是意识到不可能执行所有动作,因为用户选择显然可以是任何东西,并且不包括所有左/右括号等。我仍然报告了它,因为某些动作仍然可以执行。
bugybunny

33

尝试Ctrl+ K+ D(不解除Ctrl键之间)。


2
奇怪,CTRL + K + CTRL + D起作用(在该状态栏中可以识别,但是CTRL + K + D不能且不执行任何操作,可能与编辑器配置文件有关,但我不记得哪个选项我选择

22

是的,您可以使用两段式热键(Ctrl+ KCtrl+,F如果使用的是常规配置文件)来格式化选择。

其他格式设置选项位于菜单“ 编辑” →“ 高级”下,并且像所有Visual Studio命令一样,您可以通过菜单“ 工具” →“ 选项” →“ 环境” →“ 键盘”来设置自己的热键(格式选择命令称为Edit.FormatSelection)。

格式化对空行没有任何作用,但是它将根据一些规则缩进代码,这些规则通常与您可能想要的略有不同。


2
如果“略微关闭”表示块语句的括号从新的一行开始,那么这不是问题。无论如何,实际上这就是我更喜欢的方式。
Soumya

这些是Visual Studio 2010的默认快捷方式。对于VS 2005和2008,请使用默认快捷键Ctrl + E + D和Ctrl + E + F。
2012年

它将按照您的设置定义的格式设置代码的格式-如果您未配置它们,则使用默认值,如果可能,可以使用工具»选项»文本编辑器»CSS(对于VS 2012,可能与以前的版本非常相似,如果不相同) 。)
Grant Thomas





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.