如何在Visual Studio中自动格式化代码?

1155

我知道Visual Studio可以自动格式化代码来使我的方法和循环正确缩进,但我找不到相应的设置。


47
从顶部菜单选择:编辑 --> 高级 --> 格式化文档 - zipzit
9
2019年怎么样? - Alex Gordon
3
在VS2019中仍然是一样的。 - Finn
1
对于 Visual Studio 2017,使用快捷键 Ctrl + Alt + Enter。 - Fairuz Sulaiman
1
此功能将在Visual Studio 2022 17.1中提供 - 请参见:https://dev59.com/WW025IYBdhLWcg3w3J1H#70740018 - Kraego
显示剩余3条评论
38个回答

1741

格式化选中的部分:Ctrl+KCtrl+F

格式化文档:Ctrl+KCtrl+D

请参阅预定义的键盘快捷键。(这两个是 Edit.FormatSelectionEdit.FormatDocument。)

macOS 注意事项

在 macOS 上,请使用 CMD ⌘ 键代替 Ctrl

  • 格式化选中的部分:CMD ⌘+KCMD ⌘+F
  • 格式化文档:CMD ⌘+KCMD ⌘+D

20
2010 版本似乎是使用 Ctrl + K,Ctrl + D。 - Sarawut Positwinyu
33
在Visual Studio 2013中,使用快捷键"Ctrl + K, Ctrl + D"可以格式化文档。 - Kris
6
在VS2010中,如果你遇到了Format document is not available...的错误提示,请阅读以下链接:https://dev59.com/K2oy5IYBdhLWcg3wCpsz - tom_mai78101
4
这些内容适用于VS2013。 - James Wierzba
14
我不知道为什么微软一直在更改这些设置。以后可以在“编辑”- >“高级”- >“格式化文档”下找到它。谁知道,他们可能会在下一个版本中将那个菜单重新命名。 - Jeremy
显示剩余12条评论

199

适用于 Visual Studio 2010/2013/2015/2017/2019

  • 格式化文档 (Ctrl+K,Ctrl+D),即按住 Ctrl 键,先按下再松开 K 键,再敲击 D 键,这是一个序列操作
  • 格式化选定内容 (Ctrl+K,Ctrl+F)

工具栏路径为 编辑 -> 高级(如果找不到 高级,请在解决方案资源管理器中选择代码文件再重试)

由于我设置的是 C# 编程,因此您的快捷键可能与我的显示不同,但通过工具栏导航可以找到您自己的快捷键。

如果无法使用,请检查您的代码是否有错误,例如缺少括号会使自动格式化停止工作。


11
如果你发现它没有起作用,请检查你的括号 {},(),当它对我不起作用时,通常是因为文件中有未闭合的括号。 - ono2012
有没有不使用一系列按键,而只使用一个组合键的方法? - Upulie Han
1
@UpulieHan 我认为你可以编辑你的快捷键,路径是:工具 > 选项 > 环境 > 键盘 > 搜索 "Edit.FormatDocument" ... Ctrl+Alt+; 对我来说似乎是一个可用的组合键 :) - ono2012
如果你想要自动格式化HTML代码,那么这个命令不会起作用,相反请看 https://dev59.com/yFgR5IYBdhLWcg3wbs2X。 - Gianluca Veschi

65

我安装了一个名为“格式化保存文档”的扩展程序,每次保存文档时都会格式化整个文档。

要在Visual Studio 2015或Visual Studio 2017中安装它,请在“工具”上单击“扩展和更新...”:

图片描述

然后转到左侧面板的“在线”,搜索“格式化保存文档”即可:

图片描述


1
你也可以通过 Visual Studio 市场安装它 https://marketplace.visualstudio.com/items?itemName=mynkow.FormatdocumentonSave - VMM
我尝试过了,但似乎这个问题正在阻碍。而且我不想在清理时清理掉VS弄乱的东西。 - S. Kalabukha

47

Visual Studio 2019 & 2022

  1. 格式化文档,按住 Ctrl 键不放,先按下 K,再按下 D
  2. 格式化选定内容,按住 Ctrl 键不放,先按下 K,再按下 F

或者点击 编辑 => 高级 => 格式化文档 / 格式化选定内容

图片描述


45
  1. 打开菜单 工具扩展和更新,在搜索框中输入“productivity”:

    1

  2. 安装 'Productivity Power Tools 2015'。

  3. 重启 Visual Studio。

  4. 打开菜单 工具选项Productivity Power ToolsPower Commands,勾选“保存时格式化文档”:

    2

注意: 在 VS2022 中我们没有 power commands。

  • 如果需要“保存时格式化文档”和“保存时删除和排序 using”,请安装 Mads Kristensen 的 VS2022 扩展程序:https://marketplace.visualstudio.com/items?itemName=MadsKristensen.CodeCleanupOnSave
  • 安装此扩展程序后,它将自动“保存时格式化文档”、“保存时删除和排序 using”和“应用文件头首选项”。
  • 如果想要自定义默认设置,请点击“配置代码清理”菜单项以添加/删除任何可用的修复程序。 enter image description here

如果它可以像VB.NET一样在输入时就能工作,那就太好了。 - tmighty
必须适应在编辑每个新文档之前格式化并提交更改,否则提交记录可能会显得非常混乱。 - smurtagh
安装了Visual Studio 2019的扩展,但在HTML复制后我没有看到PowerCommands。 - Amir Dora.
它对我有效,Microsoft Visual Studio Community 2019 版本 16.5.2。 - Slava Latun

41

请按照以下步骤操作:

  • 进入菜单 工具
  • 选择 选项
  • 进入 文本编辑器选项
  • 点击您选择的语言。这里以C#为例。

参考下图:

Enter image description here


34
那我完成这个之后呢?我看不到任何设置可以处理自动缩进? - MrJalapeno
37
@MrJalapeno,我完全不知道6年前我在回答什么问题,但有34个人发现它很有用。抱歉造成困惑。如果我曾经误解了问题,那么我的答案仍然适用,因为我的答案中提到了与格式相关的选项。回过头来看,可以肯定地说,原帖的作者可能是在寻找ctrl+k, ctrl+d的命令。 - Pete

31
自从 Visual Studio 2022 17.1 版本开始(参见 devblogs.microsoft),内置了在保存时运行代码格式化的功能,无需安装类似于“在保存时格式化文档”的扩展程序。

enter image description here

请注意,使用自动格式选项时,合并视图存在故障 - github code cleanup - merge bug

29
您可以通过进入工具选项环境键盘来定义新的按键绑定:

在此输入图片描述


1
谢谢。对我来说,在VS2005方案中使用Ctrl E + D :) - nawfal

23

在 Mac 上: Shift + Option + F

在 Ubuntu 上: Ctrl + Shift + I


2
这个与其他基本上所有的东西不同,在2021年(Ubuntu)仍然对我有效。 - Kotlopou
1
我很高兴能帮助到您 =) - Jackson Smith

14

在Visual Studio 2017、2019、2022中,

格式化文档快捷键是 Ctrl + E, D

但是...如果你想要将“格式化文档”按钮添加到工具栏上,请按照以下步骤操作:

  • 右键单击工具栏。
  • 选择“自定义...”
  • 选择“命令”选项卡。
  • 选择“工具栏”单选按钮。
  • 从单选按钮旁边的下拉列表中选择“文本编辑器”(或您想要按钮的任何工具栏)

现在...

  • 点击 添加命令 按钮。
  • 类别:编辑
  • 命令:格式化文档
  • 点击 确定

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