如何格式化未保存在 Visual Studio 代码中的文档?

Giu*_*cin 2 plaintext visual-studio-code

如果我 Shift+ Alt+F一个上(或使用从调色板中命令)无标题上标签vscode以下命令出现:

没有安装“纯文本”文件的格式化程序。

有没有办法为未保存的文件指定不同的格式以启用选择的格式化程序?

当我通常复制/粘贴一些 json/xml 时,通常会出现这种需求。

小智 8

在最新的 VS Code (v1.47) 中:

检测到的文件类型打印在窗口的下方栏上,默认情况下,它可能会Plain Text显示新的、未保存的文件。

Visual Studio 代码右下菜单栏的屏幕截图

单击Plain Text,将打开一个框,您可以在其中选择 VS Code 知道的其他格式。选择您想要的一个或开始在搜索中输入您想要的内容,例如JSON,这将转换检测到的文件类型。
现在您可以使用Format Document命令面板中的标准命令,只要 VS Code 具有该文件类型的格式化程序。


Giu*_*cin 5

更新 2 现在,新选项卡直接显示选择模式:

选择一种语言即可开始。开始输入以关闭,或者不再显示此内容。

所以你只需要按Select a language

Visual Studio代码选择模式

更新 1
右下角提供的Select Language Mode功能现在可以让您选择格式选项,默认选项是Plain Text。可以与命令面板一起使用Ctrl + KM或通过从命令面板中进行选择来使用相同的功能。Change Language Mode

在 Visual Studio Code 中选择语言模式

旧答案
我找到了这个特定问题的两种解决方案,即使它们看起来更像是一种解决方法而不是正确的解决方案:

  1. 使用特定扩展来格式化特定代码(json 或 xml)
  2. 欺骗 VSCode 认为默认未保存的文件是 json

1 格式化为特定代码的扩展

安装添加特定于语言的命令的特定扩展:

专业版

  • 没有更改默认设置
  • 特定格式可用于任何文件中的任何选择
  • 这与 notepad++ 实现的解决方案相同

缺点

  • 下载额外的扩展可能看起来有点过分,只是为了格式化某些东西
  • 更多的键绑定和其他非标准行为

2 VSCode默认未保存文件的技巧

向 settings.json 添加配置,指定 json 作为无标题文件的文档类型:

"files.associations": {
    "Untitled-*" : "json"
}
Run Code Online (Sandbox Code Playgroud)

专业版

  • 使用默认格式文档
  • 无需额外下载

缺点

  • 只能指定一种格式
  • 区域设置相关(在英语以外的语言中它不应该工作)