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


817

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


17
从顶部菜单:编辑->高级->格式化文档
zipzit


1
vs2019中仍然相同
Finn

您的意思是“如何通过几次击键来格式化代码块”?这似乎是流行的答案所指的(而不是键入/粘贴/等时的“如何自动格式化” ...)。
凯文·维克多

对于Visual Studio 2017。使用快捷键Ctrl + Alt + Enter
Fairuz Sulaiman,

Answers:


1313

格式化选择:Ctrl+ KCtrl+F

格式化文档:Ctrl+ KCtrl+D

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

OSX的注意事项

在OSX上,请使用以下CMD ⌘密钥Ctrl

  • 格式化选择:CMD ⌘+ KCMD ⌘+F
  • 形成文件: CMD ⌘+ KCMD ⌘+D

17
vs 2010似乎是ctrl + k,ctrl + d
砂拉越Positwinyu

29
在Visual Studio 2013中按Ctr + K,Ctrl + D来格式化文档。
克里斯(Kris)2014年

5
在VS2010中,如果出现Format document is not available...错误消息,请阅读:stackoverflow.com/q/8812741/1016891
tom_mai78101 2014年

4
这些对于VS2013来说是准确的
James Wierzba

9
我不知道为什么微软会不断改变这些。为了将来参考,可以在Edit-> Advanced-> Format Document下找到。谁知道,他们可能会在下一次迭代中重命名该菜单。
杰里米(Jeremy)

153

对于Visual Studio 2010/2013/2015/2017

  • 设置文档(Ctrl+KCtrl+D)的格式Ctrl+K,然后 键入AND ANDN,Ctrl+D因为它是一个序列
  • 格式选择(Ctrl+KCtrl+F

工具栏“ 编辑”->“高级”(如果看不到“ 高级”,请在解决方案资源管理器中选择一个代码文件,然后重试)

当我为C#编码进行设置时,您的快捷方式可能会有所不同,但是通过工具栏导航将使您进入您的快捷方式。

如果不起作用,请在代码中查找错误,例如缺少括号,这会阻止自动格式化


11
如果您发现它不起作用,请检查括号{},(),如果它对我不起作用,那是因为文件中的某个地方有括号。
ono2012 2012年

40

请按照以下步骤操作:

  • Tools
  • Options
  • 转到 Text Editor options
  • 单击您选择的语言。我C#举个例子。

见下图:

在此处输入图片说明


24
而一旦我做到这一点?我看不到其中任何设置都可以处理自动缩进吗?
Jalapeno先生

21
@MrJalapeno我绝对不知道我6年前在这里回答了什么问题,但是34个人发现它很有用。对困惑感到抱歉。我可能会误解这个问题,在这种情况下我的答案适用,因为我的答案中包含与格式相关的选项。事后看来,可以肯定地说OP正在寻找ctrl + k,ctrl + d。
皮特

(代码样式)格式设置>“粘贴时自动格式化”
tomsmithweb

37

我安装了一个名为“保存时格式化文档”的扩展名,该扩展名在每次保存时都会格式化整个文档。要在VS15或17中安装它,只需在工具上单击“扩展和更新...”:

在此处输入图片说明

然后只需转到左侧面板上的“在线”并搜索“保存时格式化文档” 在此处输入图片说明

希望对您有所帮助!


您也可以通过Visual Studio市场marketplace.visualstudio.com/…
VMM

28

即使这个问题有点老了,也有人会觉得很方便。

您可以通过以下方法定义新的键绑定 Tools -> options -> Environment -> keyboard

在此处输入图片说明


谢谢。对我来说,在VS2005方案中按Ctrl E + D :)
nawfal

20
  1. 转到工具->扩展和更新,然后在搜索中输入“生产力”: 1个
  2. 安装“ Productivity Power Tools 2015”
  3. 重新启动VS。
  4. 转到工具->选项->生产力电动工具->电源命令,然后选中“保存时格式化文档”: 2

如果可以像在VB.NET中那样在键入时正常工作,那将是很好的:
tmighty

必须习惯于格式化您编辑的每个新文档并提交更改,然后才能实际更改文件,否则提交看起来可能很吵
smurtagh 18-4-10

安装了Visual Studio 2019的扩展程序,HTML复制后我看不到powerCommands。
阿米尔多拉

它对我
有用


10

如果显示“ HTML源代码编辑”工具栏,则也有一个“设置整个文档格式”按钮


那真是个奇怪的地方。我一直在寻找这个。
rory.ap 2015年

1
我有VS13,该工具栏没有可用的“格式化文档”按钮。
emcor

1
使用Microsoft Visual Studio Community 2015版本14.0.23107.0 D14REL,在提到的工具栏上有一个“设置整个文档格式”按钮。
伊恩·卡彭特

9

接受的答案中提供的解决方案不适用于Microsoft Visual Studio 2012

对于VS2012,快捷方式为:

  • 对于突出显示的代码块: Ctrl+ KCtrl+F
  • 对于文档范围的格式: Ctrl+ KCtrl+D

其实没错。CTRL + K,F和CTRL + E,F都做同样的事情。如果转到“编辑”->“高级”,您实际上将看到列出的快捷方式为CTRL + E,D和CTRL + E,F。也可以使用CTRL + K,C或CTRL + E,C进行注释。-在安装所有最新更新的情况下使用VS2012 Premium。
Alan006 2014年

1
@ Alan006有趣。我的VS2012 Pro安装表明Ctrl + e,f / Ctrl + e,d不是命令。
Geowil,2014年

5
我认为这可能与您在首次启动时最初选择的环境/开发设置有关。它们都为我工作,所以我不会抱怨:D
Alan006 2014年

@ Alan006是正确的,VS2010及更高版本的默认环境使用“ Visual Basic”的键盘布局(请选中“ 工具”->“选项”->“键盘”)。“ Visual C#2005”的键盘绑定略有不同。
Bryan Way


7

在VS 2017和2019中

格式文件为CTRL E + D

但是...如果要将格式文档按钮添加到工具栏,请执行此操作。
右键单击工具栏。
选择“自定义”。
选择“命令”选项卡。
选择“工具栏”单选按钮。
从单选按钮旁边的下拉菜单中选择“文本编辑器”(或您想要在其上使用的工具栏)

现在...

点击Add Command按钮。
类别:编辑
命令:文档格式
单击OK


6

在“ 工具”->“选项”->“文本编辑器”下,然后转到“ 格式设置”->“常规”部分,选择要格式化的任何语言,即可找到“ 常规”。选中所有三个格式复选框。

在“ 工具”->“选项”->“文本编辑器”下,然后转到您希望格式化的任何语言的TABS部分,您会发现“ 缩进”。选择“ 智能”,只要您使用结束元素之一,它将激活自动格式化;)}。

无需按键。


1
VB.NET这样做并不能改善“已经搞砸”的代码。
tmighty

5

您可以通过单击最后一个工具栏按钮右侧的小下拉箭头,选择“添加或删除按钮”,然后单击要在其上添加刻度的按钮,将按钮添加到工具栏。您选择的按钮将出现在工具栏上...

在此处输入图片说明

然后,您只需选择文本并单击“增加缩进量”或“减少缩进量”按钮。我仅在Visual Studio 2013上对此进行了测试。



5

最初的问题是“我找不到设置”。

简单的答案是:先查看顶部菜单,然后

编辑->高级->格式化文档

您还将看到该功能的当前分配的按键。没什么特别要记住的。如果您在不同的操作系统上使用多个开发人员环境,这确实有帮助。




2

只是为了进一步说明StarwfanaticEwan的答案。您可以自定义IDE以将任何按钮添加到任何工具栏-这样就可以将“格式”按钮(如HTML Source Editing工具栏所具有的)添加到任何其他工具栏(例如,“文本编辑”,以及所有其他编辑控件,例如增加/减少缩进)。

单击工具栏右侧的箭头>添加或删除按钮>自定义...>命令选项卡>添加命令...按钮。

文档格式选择格式都在“ 编辑”组下。

(在VS2010和VS2013中测试)




1

我有一台Mac,单击“代码”>“首选项”>“设置”>“工作区”>“格式”,然后选择“保存时格式化”

现在,每次我按cmd+时,s它都会自动格式化文件。

在此处输入图片说明


2
尽管我没有Mac(因此,Mac上的Visual Studio看起来像VS Code?),但是您的答案/屏幕截图是针对VS Code的,而不是针对Visual Studio的,这是OP的要求。
Gregg L


0

剪切/粘贴部分是另一种快速的方法(且易于记忆)。


2
...?不会为我格式化任何内容。实际上,我查找此文件的原因是要在剪切和粘贴后进行格式化
。.– tenwest

这不会使用默认设置来格式化代码。也许您有一些设置/插件可以在粘贴后完成工作。直到2018年11月(v 1.30.2),方法是SHIFT + ALT + F
Pablo

0

如果您负担得起(或者您有资格获得30天免费试用),Jetbrains ReSharper可以重新格式化整个项目目录。

只需安装->右键单击目录->从上下文菜单中选择清除代码。


0
#include "stdafx.h"
#include <stdio.h>


int main(){
    char filename[15];

    printf("Enter file name:");
    scanf("%s", filename);
    Automat(filename);
    freq(filename);
}

int Automat(char filename[]){

    FILE*fp;
    char c;
    int state = 1;
    int duma = 0;
    fp = fopen(filename, "r");
    if (fp == NULL){
        printf("Error");
        system("pause");
    }
    while (!feof(fp)){
        c = fgetc(fp);

        switch (state){
        case 1:
            if (c == '\t' || c == '\n' || c == ' '){
                state = 3;
                break;
            }
        case 2:
            if (c >='A'|| c<='Z'){
                break;
            }

        case 3: duma++;
            state = 1;
            break;
        }
    }
    printf("Broq e : %d\n", duma);
    return 1;
}
int freq(char filename[]){

    FILE*fp;
    char c;
    int state = 1, sequence = 0;
    fp = fopen(filename, "r");
    if (fp == NULL){
        printf("Error");
        system("pause");
    }



    while (!feof(fp)){
        c = fgetc(fp);
        switch (state){
        case 1:
            if (c >= 'A' && c <= 'Z'){
                state = 2;
                break;
            }

        case 2:
            if (c == '\t' || c == '\n'||c == ' '){
                sequence++;
                state = 1;
                break;

            }
        }

    }
    printf("Sequence is : %d\n", sequence);
}

1
@Robson对于类似的事情,最好提交建议的编辑。您只需突出显示所有代码,然后按Ctrl-K,它将自动缩进。
EJoshuaS-恢复莫妮卡

0

您也可以尝试右键单击菜单选项来格式化编码文档的选择。看看下面的屏幕截图

在此处输入图片说明


0

选择要自动缩进的文本。

单击“编辑”,“高级”中的“格式选择”,或按CTRL + K,CTRL + F。格式选择将适用于您正在编程的语言的智能缩进规则应用于所选文本。

步骤(1):-CTRL + A

步骤(2):-CTRL + K

步骤(3):-CTRL + F



-1

在Visual Studio 2015和2017中获取c#代码。1)滚动到文件末尾2)删除最后一个“ Curly Bracket”} 3)等待直到上面的行显示错误4)更换“ Curly Bracket”} fini。:)

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.