题 如何在Visual Studio代码(VSCode)中格式化代码


相当于什么 按Ctrl + ķ + F 和 按Ctrl + ķ + d 在Visual Studio中的Windows上用于格式化或“美化”Visual Studio代码编辑器中的代码?


991
2018-04-30 16:43


起源


对于所有那些拼命想要的人 格式化XML (这似乎不可能开箱即用)你可以通过安装扩展来实现这一目标。我已经发现 XML工具 把工作做得很好。 免责声明:我不是作者,也不是这个项目的相关内容...... - informatik01
虽然VSCode的菜单选项比VS(新趋势?)少得多,但它在HELP菜单下有广泛的信息和教程,可能已回答了这个问题。 - Roland
这个答案解决了这个问题 stackoverflow.com/a/41810141/1976986 - Mr. C
对于那些即使在Visual Studio Code中尝试有效组合之后仍然努力获得格式化工作的人,不要忘记选择适当的编程语言类型,它位于该笑脸旁边的visual studio代码窗口的右下角。一旦你这样做,我发现它开箱即用,你不需要任何额外的插件来格式化代码。 - Mr.Hunt
@Roland,你是阴谋的一部分!我会变得偏执狂。 (这个链接现在也适合我。不知道问题是什么:-)) - bbsimonbb


答案:


VS Code中的代码格式通过以下快捷方式提供:

  • 在Windows上 转移 + Alt键 + F
  • 在Mac上 转移 + 选项 + F
  • 在Ubuntu上 按Ctrl + 转移 + 一世

或者,您可以通过编辑器中提供的搜索功能找到快捷方式以及其他快捷方式 按Ctrl +转移+ P (要么 命令 + 转移 + P 在Mac上),然后搜索 格式文件


2098
2018-04-30 16:43



我相信这应该是“Shift + Alt + F” - 而不是Ctrl + Alt + F.(在这里查看默认的键绑定。)有趣的是,Command + P也没有显示任何格式命令。 - JasCav
另请注意,代码语言必须正确。即如果选择了纯文本,格式代码将不可用,但切换到JSON(例如)将愉快地格式化所选文本。 (无论如何都像文本编辑器一样快乐) - Stephen Price
此外,显然文件必须首先保存到磁盘。我有一大堆HTML + Javascript,它无法格式化JS,所以我将它粘贴到一个临时窗口并设置语言,但这在它被保存之前没有帮助。 - Jonas
对于那些说它无法在Mac上运行的人来说,这看起来像快捷键和OS X文本输入系统之间的重音字符冲突,这取决于您配置的语言环境和键盘设置: github.com/Microsoft/vscode/issues/8914#issuecomment-245947844 - Chris Adams
这对我的VS Code最新版本不起作用,win 10是否假设安装了某个扩展? - Jawad


代码格式快捷方式:

Windows上的VSCode - 转移 + Alt键 + F

MacOS上的VSCode - 转移 + 选项 + F

Ubuntu上的VSCode - 按Ctrl + 转移 + 一世

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

保存文件时的代码格式: 

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

如果您想在保存的同时自动格式化您的内容,请在Visual Studio代码的工作空间设置中将此下面的代码段添加。

文件 - >首选项 - >工作区设置 

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

   "editor.formatOnSave": true,

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

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


226
2018-05-25 06:25



也适用于另一种语言: 美化扩展 - Equiman
不知道为什么它在CentOS中有所不同,但它确实如此 Shift + Alt + I - a11smiles
beautify.onSave对于安装的eslint扩展无效 - Ben Petersen
在ubuntu伙伴17.04它 Shift + Alt + I 太 - Pini Cheyni
@ClintEeastwood尝试使用 prettier.singleQuote: true 在您的vs代码设置中。 - Enn


您可以添加键绑定 文件 - >首选项 - >键盘 快捷键。

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

要么 视觉工作室 喜欢:

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

182
2018-05-01 13:49



在Windows中,替换 cmd 同 ctrl  - 不要像我一样盲目地复制和粘贴! - Jens Ehrich
“editor.action.format”再次运作。如果没有选择任何内容,它现在格式化整个文档,否则格式化选择。 - Red Riding Hood
ctrl+k ctrl+d 是根深蒂固的肌肉记忆。干杯! - Paul Suart


正确的组合键是 转移+ALT+F


90
2017-07-09 10:57



首先必须选择他们希望格式化的代码块,然后执行此组合键。 - Will Strohl
当你刚才 复制粘贴 代码从剪贴板到 新标签什么都没发生解: 保存 具有相关的文件的代码 文件扩展名 (例如* .json)。然后它工作。我想原因是美化器从扩展中知道语言,并且不根据代码进行自动检测。 - Beauty
@WillStrohl无需选择任何代码块。此命令格式化整个文件。 - MEMark
@MEMark也许这是我当时使用的版本,但我必须选择all才能在发布评论时将其格式化为整个文件。 - Will Strohl


另请注意,截至今天,这些语言可以使用格式:

  • XML  (他们 删除它,太多的错误)
  • HTML
  • JSON
  • JavaScript的
  • 打字稿
  • C#

66
2018-05-04 13:28



参考 资源 更新 - Yibo Yang
你在哪里找到这些信息?根据第一条评论,XML是一种支持的语法,但是当文件类型设置为xml时,命令调色板不显示格式代码。我可以将其更改为json或c#,格式代码选项可用。在我看来,XML不支持格式化。 - Dan Revell
XML被删除: github.com/Microsoft/vscode/issues/71在2015年11月 - ZachB
如果将嵌套的span标记或angular指令作为元素标记,则HTML格式不能很好地工作。 - newman
嗨,我仍然无法在cs代码1.10中格式化c#代码,不知道我在这里可能缺少什么? - Jawad


VS代码 1.6.1  支持“格式化保存“它将自动获取相关的已安装格式化程序扩展,并在每次保存时格式化整个文档。

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

"editor.formatOnSave": true

并且有可用的键盘快捷键(VS Code 1.7 以上):

格式化整个文档转移 + Alt键 + F

仅格式选择按Ctrlķ + 按CtrlF


46
2017-10-28 07:26



谢谢,我在寻找什么 - Brent
那些* .ts文件怎么样?它似乎工作,但在这种情况下,由于格式化代码使用会有另一个错误(“) 代替 (“): “[tslint]”应为'(引号) 有什么想法解决这个问题? - Clint Eastwood
我建议为VS Code扩展EsLint marketplace.visualstudio.com/... - Dariusz
谢谢这个选项是我想要的 - Jezer


在Linux上 按Ctrl + 转移 + 一世。在Windows上 Alt键 + 转移 + F


43
2017-09-11 08:36



在win / vscode 1.17.1上不起作用 - Malako
为我工作!谢谢 - talentedandrew
@Malako它似乎确实是不同平台和不同编程语言的不同捷径。我已更新我的答案以改进细节。 - Niklas Rosencrantz
那些* .ts文件怎么样?它似乎工作,但在这种情况下,由于格式化代码使用会有另一个错误(“) 代替 (“): “[tslint]”应为'(引号) 有什么想法解决这个问题? - Clint Eastwood