如何从 VSCode 中的 "format on save" 中排除文件扩展名和语言?

How to exclude file extensions and languages from "format on save" in VSCode?

目前在 VSCode 设置中,您可以按如下方式配置保存格式:

"editor.formatOnSave": true

我想排除一些文件扩展名,例如仅格式 JavaScript 而不是 HTML 文件。

您可以使用 language specific settings 启用 仅针对特定语言,例如JavaScript:

"[javascript]": {
    "editor.formatOnSave": true
}

要针对特定​​语言禁用它,您可以将全局默认值切换为true并将其与特定语言false结合使用:

"editor.formatOnSave": true
"[javascript]": {
    "editor.formatOnSave": false
}

请注意,特定于语言的设置也基于 language identifiers rather than directly on file extensions. There's an open feature request to allow for file extension specific settings

在语言 ID 不够具体的情况下,"files.associations" 可用于将特定目录中具有特定扩展名 and/or 的文件重新映射到另一个 ID,但这会影响语法突出显示,代码完成等。例如,这可以禁用 out 目录中 JavaScript 文件的格式,但它们将被视为纯文本:

"[javascript]": {
    "editor.formatOnSave": true
},
"files.associations": {
    "**/out/**/*.js": "plaintext"
}

如果你像我一样遇到这个问题,因为你因为这个问题而被重定向,它说,这是重复的(我不这么认为,因为我想要它用于特定文件) 而您正在寻找 "one-time" 解决方案:

VS Code 有一个快捷方式 "now"(我不知道从什么时候开始),用于保存文件而不在命令 workbench.action.files.saveWithoutFormatting 下列出格式 - 默认键绑定应该是

CTRL + K CTRL + SHIFT + S 

(只需按住 CTRL,然后键入 K + SHIFT + S)。

在 OS X 上,默认键绑定是

CMD + k 然后按 s

在 Mac 和 Linux 上,使用 Ctrl + K S

在 Windows 上,使用 Ctrl + K Ctrl + Shift + S

检查 VS Code 键盘快捷键:Ctrl + K, Ctrl + S(是的,几乎与上面相同)并搜索 "save without formatting"

来自 VS 代码 IDE 文件 -> 首选项 -> 设置 -> 文本编辑器 -> 格式化并取消选中保存时格式化文件。

我用 VSCode 弄乱了我的键盘按键。一种替代方法是使用 VSCode 命令进行保存而不进行格式化,方法是执行 CTRL+SHIFT+P 并执行 命令。 :)

您可以在Vscode中使用以下设置并使用“python.formatting.autopep8Args”来指定文件或一些模式来忽略您想要的文件。当然,假设您正在使用 autopep8 来格式化您的 python 文件,其他代码格式化程序可能有其他方法来配置它。

{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "python.formatting.autopep8Args": ["--exclude settings.py"],
  "[python]": {
    "editor.defaultFormatter": "ms-python.python",
    "editor.formatOnSave": true
  }
}