如何在Visual Studio代码(VSCode)中设置代码格式


990

在Visual Studio中,Windows 上Ctrl+ K+ FCtrl+ K+ 的等效D格式是什么,或在Visual Studio代码编辑器中“美化”代码?


47
对于所有拼命尝试格式化XML的人(当前似乎无法立即使用),您可以通过安装扩展来实现。我发现XML工具可以很好地完成工作。免责声明:我既不是作者,也不与此项目有关……
informatik01

尽管VSCode的菜单选项比VS(新趋势?)要少得多,但它在HELP菜单下有大量信息和教程,这可能已经回答了这个问题。
罗兰

对于所有尝试在Visual Studio Code中尝试有效的组合后仍在努力进行格式化工作的人,请不要忘记选择适当的编程语言类型,它位于Visual Studio代码窗口右下角的笑脸旁边。完成后,我发现它可以直接使用,并且您不需要任何其他插件即可格式化代码。
亨特先生

Answers:


3832

通过以下快捷方式,Visual Studio Code中提供了代码格式:

  • 在Windows Shift+ Alt+F
  • 在Mac上Shift+ Option+F
  • 在Linux Ctrl+ Shift+I

或者,您可以通过Ctrl+ Shift+ P(在Mac上为Command+ Shift+ P)在编辑器中提供的“命令面板”找到快捷方式以及其他快捷方式,然后搜索格式文档


28
另请注意,代码语言必须正确。即,如果选择了纯文本,则格式代码将不可用,但是切换到JSON(例如)将愉快地格式化所选文本。(无论如何也可以像文本编辑器一样开心)
Stephen Price

4
@JoSmo:在Ubuntu上,我打开了文件>首选项>键盘快捷键。有一个项目,用于{“ key”:“ ctrl + shift + i”,“ command”:“ editor.action.format”,“ when”:“ editorTextFocus”}。命令“ ctrl + shift + i”对我有用。
Asheesh

18
同样,显然必须先将文件保存到磁盘。我有一大堆无法格式化JS的HTML + Javascript,因此我将其粘贴到一个临时窗口中并设置了语言,但这在保存之前无济于事。
乔纳斯(Jonas)2016年

9
对于那些说无法在Mac上运行的人来说,这看起来像是快捷键和重音字符的OS X文本输入系统之间的冲突,具体取决于您配置的语言环境和键盘设置: github.com/Microsoft/vscode/issues / 8914#issuecomment-245947844
克里斯·亚当斯

8
这在VS Code最新版本上对我不起作用,并且在Win 10上是否假定已安装某些扩展程序?
JayPex

479

代码格式化快捷方式:

Windows上的Visual Studio代码- Shift+ Alt+F

MacOS上的Visual Studio代码- Shift+ Option+F

Ubuntu上的Visual Studio代码- Ctrl+ Shift+I

如果需要,您还可以使用首选项设置来自定义此快捷方式。

保存文件时的代码格式化:

Visual Studio Code允许用户自定义默认设置。

如果要在保存时自动格式化内容,请在Visual Studio Code的工作空间设置中添加以下代码片段。

菜单文件首选项工作区设置

{
    // Controls if the editor should automatically format the line after typing
    "beautify.onSave": true,

    "editor.formatOnSave": true,

    // You can auto format any files based on the file extensions type.
    "beautify.JSfiles": [
        "js",
        "json",
        "jsbeautifyrc",
        "jshintrc",
        "ts"
    ]
}

注意:现在您可以自动格式化TypeScript文件。检查我的更新。


同样适用于另一种语言:Beautify Extension
equiman

3
不知道为什么它在CentOS中会有所不同,但这是Shift + Alt + I
a11smiles

2
beautify.onSave对于安装了eslint扩展无效
Ben Petersen

在Ubuntu mate 17.04上Shift + Alt + I也是如此
Pini Cheyni

2
@ClintEeastwood尝试prettier.singleQuote: true在vs代码设置中使用。

216

您可以在菜单文件首选项键盘快捷方式中添加快捷键。

{ "key": "cmd+k cmd+d", "command": "editor.action.formatDocument" }

或像Visual Studio一样:

{ "key": "ctrl+k ctrl+d", "command": "editor.action.formatDocument" }

23
在Windows中,请替换cmdctrl-不要像我一样盲目复制和粘贴!
延斯·埃里希

3
“ editor.action.format”再次工作。现在,如果未选择任何内容,它将格式化整个文档,否则将格式化所选内容。
红帽

198
  1. 右键点击文件
  2. 从菜单中选择格式文档
    • 视窗: Alt Shift F
    • Linux: Alt Shift I
    • 苹果系统: F

在此处输入图片说明


18
对于Linux,键盘快捷键是Ctlr + Shift + I
Lucas

什么是菜单框?
Peter Mortensen

@PeterMortensen您将在其中看到菜单的框。在截图中,它是白色的盒子“格式文档”,“剪切”,“复制”,“粘贴”等
奔Leggiero

117

右键组合为Shift+ Alt+ F


2
当您只是代码从剪贴板复制并粘贴新标签页时,则什么也不会发生。解决方案:代码保存到具有相关文件扩展名的文件(例如* .json)。然后就可以了。我想这是因为美化者可以从扩展名中了解语言,并且不会根据代码进行自动检测。
美女

此快捷方式适用于MAC。在Windows中,它格式化代码。
C. Damoc '19年

63

对于Fedora

  1. 单击File-> Preferences-> Keyboard shortcuts
  2. 在下Default Keyboard Shortcuts,用(Ctrl+ F)搜索editor.action.format

我的读 "key": "ctrl+shift+i"

您也可以更改它。有关如何...或如果您有点懒惰向上滚动,请参考以下答案


您可以在“首选项->键盘快捷方式”中添加键盘绑定

{ "key": "cmd+k cmd+d", "command": "editor.action.format" }

或像Visual Studio一样:

{ "key": "ctrl+k ctrl+d", "command": "editor.action.format" }


请注意:cmd密钥仅适用于Mac。对于Windows和Fedora(Windows键盘)使用Ctrl


编辑

根据Visual Code版本,1.28.2这就是我所发现的。

editor.action.format不复存在。现在已由editor.action.formatDocument和代替editor.action.formatSelection

键入editor.action.format搜索框查看现有的快捷方式。

要更改组合键,请按照下列步骤操作:

  1. 点击editor.action.formatDocumenteditor.action.formatSelection
  2. 笔形图标出现在左侧-单击它。
  3. 出现一个弹出窗口。按所需的组合键,然后按Enter。

使用此命令,在我的TypeScript文件中,单引号变为双引号。怎么解决呢?
DioBrando

似乎无法在新设置的垃圾用户界面中找到它。
奥利弗·迪克森

63

在Linux上它是Ctrl+ Shift+ I

在Windows上,Alt+ Shift+ F。经过HTML / CSS / JavaScript和Visual Studio Code 1.18.0的测试。

对于其他语言,您可能需要安装特定的语言包。


61

Visual Studio Code 1.6.1支持“ 保存时格式化 ”,该格式将自动选择相关的已安装格式化程序扩展名,并在每次保存时对整个文档进行格式化。

通过设置启用“保存时格式化”

"editor.formatOnSave": true

并且有可用的键盘快捷键(Visual Studio Code 1.7及更高版本):

格式化整个文档Shift+ Alt+F

仅格式选择Ctrl+ KCtrl+F


我建议使用VS Code的EsLint扩展marketplace.visualstudio.com/…–
Dariusz,

44

在Ubuntu上它的Ctrl+ Shift+ I


7
我想这取决于语言。 CTRL + SHIFT + I例如,适用于JavaScript但不适用于PHP。
Jamie Carl

32

只需右键单击文本,然后选择“格式代码”。

js-beautify虽然Visual Studio Code在内部使用,但是它无法修改您希望使用的样式。扩展名“美化”使您可以添加设置。


1
当然,我使用的是Windows,它的工作方式如前所述-可能取决于VScode版本(请更新!)和文件扩展名。请使用HTML进行测试。
Gerfried


32

菜单文件首选项设置

"editor.formatOnType": true

当您输入分号时,它将被格式化。

或者,您也可以使用"editor.formatOnSave": true


奇怪的是,我发现此设置的行为可能与shift+alt+f某些情况不同。不知道为什么!
JzInqXc9Dg '18年

启用此功能并使用C#创建函数后,就可以完成整个操作并继续进行,但是直到执行“格式化文档”功能,函数才被格式化。我不知道为什么键入功能后以上设置没有格式化。
丹尼尔·杰克逊


24

出于某种原因,Alt+ Shift+ F并没有为我工作在Mac Visual Studio代码1.3.1,居然命令“格式文档”完全不奏效。但是命令格式化程序效果很好。

因此,您可以使用Command+ Shift+ P并键入Formatter,或在菜单文件首选项键盘快捷键Command+ K Command+中创建自己的快捷方式,S然后键入Formatter并添加您的快捷方式。

看一个例子:

在此处输入图片说明


23

在Visual Studio中格式化代码。

我试图在Windows 8中格式化。

只需按照下面的截图。

  1. 单击顶部菜单栏上的“查看”,然后单击“命令面板”。

    在此处输入图片说明

  2. 然后将在需要输入格式的地方出现一个文本框

    Shift+ Alt+F

    在此处输入图片说明


1
有时候,我将xml复制粘贴到新文件中,并希望在不保存文件的情况下对其进行格式化。这对于这种情况是完美的!
user3885927

19

在Visual Studio代码,Shift+ Alt+ F是做什么Ctrl+ K+ D在Visual Studio做。


18

在我为Mac OS X,DNVMDNX安装Mono之前,C#中的格式快捷方式对我不起作用

在安装Mono之前,自动格式化快捷键(Shift+ Alt+ F)仅适用于.json文件。


为了格式化C#,需要安装扩展名。通常,omnisharp应该起作用。但是,omnisharp中存在一个错误。在修复该错误之前,我们必须使用Leopotam.csharpfixformat扩展名。它会覆盖omnisharp。安装C#FixFormat扩展名后,我可以再次格式化文档。
奥尼尔Umut TURER


14

虽然更改Visual Studio Code的默认行为需要扩展,但是您可以在工作区或用户级别覆盖默认行为。它适用于大多数受支持的语言(我可以保证HTML,JavaScript和C#)。

工作空间级别

好处

  • 不需要扩展
  • 可以在团队之间共享

结果

  • .vscode/settings.json 在项目根文件夹中创建

如何?

  1. 转到:菜单文件首选项工作区设置

  2. 添加并保存"editor.formatOnType": true到settings.json(通过创建.vscode / settings.json文件来覆盖您正在处理的项目的默认行为)。

    看起来如何

用户环境级别

好处

  • 不需要扩展
  • 个人发展环境tweeking统治他们(设置:)

结果

  • 用户的settings.json已修改(请参见下面的操作系统位置)

如何?

  1. 转到:菜单文件首选项用户设置

  2. 在用户settings.json中添加或更改"editor.formatOnType": falseto 的值"editor.formatOnType": true

您的Visual Studio Code用户的settings.json位置是:

设置文件的位置取决于您的平台,用户设置文件位于以下位置:

  • 视窗: %APPDATA%\Code\User\settings.json
  • 苹果电脑: $HOME/Library/Application Support/Code/User/settings.json
  • Linux:$HOME/.config/Code/User/settings.json工作空间设置文件位于项目中的.vscode文件夹下。

可以在这里找到更多详细信息。


9

默认情况下,此键不适用于HTML,CSS和JavaScript文档。

搜索之后,我发现了受欢迎的插件JS-CSS-HTML Formatter其安装次数133,796

安装后,只需重新加载Windows并点击Ctrl+ Shift+ F,它就可以了!


是的,但是5星中只有2星?认真吗
kmoser

提醒一下:这个答案最初是在2017年编写的,当时VS Code功能通过插件或其他黑客手段发挥了很大的功能,当时没有其他解决方案对我有用,因此我自己发现了那个时候实际上起作用了而没有关心它拥有多少颗星星:-)现在,2020年和格式支持非常出色。
mumair

我认为VS Code还不支持开箱即用地格式化CSS。我安装了Prettier插件(prettier.io),该插件可以处理JavaScript,TypeScript,Flow,JSX,JSON,CSS,SCSS,Less,HTML,Vue,Angular,GraphQL,Markdown,YAML。560万次安装,四星级。
kmoser

我很高兴您发现有漂亮的:P格式支持,但没有更好的漂亮,我在所有带有.prettierrcand插件的项目中都把漂亮作为开发依赖。恐怕有一天,更漂亮的将合并为vs代码:)
mumair




7

对于那些想要自定义要格式化的JavaScript文件的用户,可以使用属性上的任何扩展名JSfiles。同样适用于HTML。

{
    "beautify.onSave": true,
    "beautify.JSfiles": ["js", "json", "jsbeautifyrc", "jshintrc", "ts"],
    "beautify.HTMLfiles": ["htm", "html"]
}

这将在保存时美化TypeScript,并且您可以将XML添加到HTML选项。


1
我该放在哪里?还可以补充一点,美化是一个扩展...
rotgers

可能已经提到过将代码放在哪里。
gromit190

6

如果要自定义格式文档的样式,则应使用Beautify扩展。

参考此屏幕截图:

img


6

您必须先安装适当的插件(即XML,C#等)。

在您安装了相关的插件并使用适当的扩展名保存文件之前,格式化将不可用。


Beautify询问您是否不知道使用哪种格式程序,从而允许其设置cshtml的样式。
Cees Timmerman '18


5

不是这个。用这个:

菜单文件首选项工作区设置“ editor.formatOnType”true


3
不是这个吗?您是在指另一个答案吗?如果是,是哪一个?
彼得·莫滕森


2

Linux上的Visual Studio代码:

Ctrl+ [取消缩进代码块并

Ctrl+ ]进行整体压痕

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.