VSCode - 在保存时禁用所有自动格式化

inb*_*33n 5 visual-studio-code

我正在编辑别人的代码,我只想更改 9000 行文件的 1 行。但是每次我保存时,VS Code 都会格式化整个文件并删除任何尾随空格。这是一个禁忌,因为当我提出这个问题时,审阅者将不知道该看哪一行。

我已经试过禁用漂亮,添加的所有文件.prettierignore,进入VS代码设置和禁用格式化或白色空间中的任何建议修剪,关闭formatOnSave

这是我的 .vscode/settings.json

{
  "prettier.disableLanguages": [
    "js",
    "json",
    "javascript"
  ],
  "javascript.format.enable": false,
  "typescript.format.enable": false,
  "json.format.enable": false,
  "html.format.enable": false,
  "emmet.showAbbreviationSuggestions": false,
  "css.validate": false,
  "editor.defaultFormatter": null,
  "editor.formatOnSave": false,
  "[javascript]": {
      "editor.formatOnSave": false,
      "editor.defaultFormatter": null
  },
  "editor.trimAutoWhitespace": false,
  "diffEditor.ignoreTrimWhitespace": false,
  "files.trimTrailingWhitespace": false,
  "files.trimFinalNewlines": false,
"eslint.format.enable": false,
"files.autoSave": "off",
}
Run Code Online (Sandbox Code Playgroud)

唯一似乎有效的是,如果我这样做了CTRL + SHIFT + P,那么SAVE WITHOUT FORMATTING。但是我可以有什么设置,所以我可以通过正常保存来做到这一点?

小智 97

遇到同样的问题,只需将“cmd + s”绑定到保存而不格式化。按 cmd+shift+p 然后搜索保存而不格式化,然后单击配置图标,然后用 'cmd + s' 绑定它,问题消失了:)

  • 这是唯一适合我的解决方案。我无法理解为什么,但我的 VSCode 安装坚持格式化 .js 文件。 (8认同)
  • @birgersp这可能是一个扩展,您可以转到命令选项板并搜索命令“Start Extension Bisect”。它将启用/禁用一堆扩展程序,并多次询问您是否仍然遇到问题,直到它足以让您识别出哪个扩展程序导致了任何不需要的行为。然后您可以尝试看看这是该扩展的配置还是只是需要报告的错误。 (4认同)
  • 惊人的。遵循您的建议:视图>命令面板>在文本搜索字段中键入“保存”。请参阅最右侧齿轮图标设置上的“文件:保存而不格式化”(单击它), (2认同)

Rom*_*rez 27

如果是 ESLint,而不是 Prettier,解决方案是:

打开Preferences: Open Settings (JSON)并配置:

"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
    "source.fixAll": false,
    "source.fixAll.eslint": false
}
Run Code Online (Sandbox Code Playgroud)

我没有 Prettier,但解决方案可能类似。


Ary*_*ola 17

就我而言,我卸载了 prettier 并使用 html-css-js 代码格式化程序。我已经在保存时取消选中格式,并尝试了许多其他方法。我最终更改了 formatter.json 中的设置(html-css-js 格式化程序的设置),然后它起作用了。

脚步:

  1. Ctrl + Shift + P
  2. 格式化程序配置
  3. 如果“onSave”:true,则将true更改为false
  4. 保存 formatter.json 并重新加载窗口。

我的 formatter.json 设置

这对我有用。之后我也可以使用自动保存。


csg*_*eek 11

我不久前遇到了这个问题。我formatOnSave在设置中禁用了该选项。

转到File > Preferences > SettingsCtrl + ,。在“用户”选项卡中选择Text editor并导航

Formatting,禁用该formatOnSave选项。

是啊!


Ada*_*dan 7

就我而言,我有两个默认的代码格式化程序,它们的设置相互冲突,“prettier”设置为不在保存时格式化,但JS-CSS-HTML 格式化程序仍然设置为某些文件类型的默认格式化程序。我建议仅使用一种格式化程序,并从扩展列表中删除任何未使用/冲突的格式化程序。

我使用的方法是:

  1. 打开一种文件类型(在保存问题上为您提供格式设置的文件类型。)

  2. 单击文件类型,然后从下拉列表中选择“配置基于‘yourFiletype’语言的设置..”。 在此输入图像描述

  3. 删除设置默认格式化程序的行: ex) "editor.defaultFormatter": "lonefy.vscode-JS-CSS-HTML-formatter" 在此输入图像描述

  4. 然后返回到您的文件并尝试正常格式化(我的热键是:alt + shift+ f),它应该提示您选择默认格式化程序。

这应该有助于最大限度地减少格式化程序冲突问题。


Set*_*lco 7

不格式化保存

\n

理想的解决方案是使用“保存而不格式化”命令。

\n

这可以通过以下任一方式执行:

\n
    \n
  • 在命令面板中选择它:CTRL+ SHIFT+P
  • \n
  • 执行键盘快捷键:CTRL+ K,S
  • \n
\n

这使您可以保存文件,绕过任何可能自动运行的格式化程序。

\n

保存时格式化

\n

您可能想完全禁用自动格式化。files.autoSave您可能只是不喜欢它,或者因为它与自动保存(因此也会自动格式化)配对时会很烦人。

\n

首先检查您的全局设置并查看是否已editor.formatOnSave启用。如果是这样,则禁用它。

\n

您可以通过以下任一方式导航到您的设置:

\n
    \n
  • 导航菜单栏:File\xe2\x86\x92 Preferences\xe2\x86\x92Settings
  • \n
  • 执行键盘快捷键:CTRL+,
  • \n
\n

然后搜索editor.formatOnSave并禁用它。

\n

如果它仍然是自动格式化,则可能在工作区设置中启用它。检查工作空间的根目录是否有文件.vscode/settings.json,如果有,是否有editor.formatOnSave. 如果是这样,则要么在那里禁用它,要么删除该文件以阻止它覆盖您的全局设置。

\n

其他扩展

\n

检查是否有任何其他扩展在保存时执行代码操作。这里的其他答案稍微涵盖了这个主题,但一般来说,您可以浏览您的设置和搜索术语,例如“保存”或“格式”。

\n
\n

所有 UI 导航和键盘快捷键均取自 Linux 安装,它们在其他平台上可能有所不同。

\n


Ham*_*asi 7

您可以通过更改用户设置文件来做到这一点:

  1. ctrl + shift + p
  2. preferences: Open User Settings(JSON)

您可以通过添加以下代码来禁用所有文件的保存格式代码:

{
    "editor.formatOnSave": false,
}
Run Code Online (Sandbox Code Playgroud)

如果您只想禁用特定文件的格式,您可以使用以下代码:

{
    "editor.formatOnSave": true,
    "[markdown]": 
    {
      "editor.formatOnSave": false
    },
    "[yaml]": {
       "editor.formatOnSave": false
    },
}
Run Code Online (Sandbox Code Playgroud)

通过使用此代码,可以禁用yamlmarkdown文件的格式设置,但可以启用其余文件格式的格式设置。


希望这可以帮助。


Mor*_*iya 5

也许tombonnike的这个名为 Formatting Toggle 的插件可以帮助您。

\n

它通过切换禁用自动保存。

\n

从它的描述来看:

\n
\n

VS Code 扩展,允许您只需单击一下即可打开和关闭格式化程序(Prettier、Beautify、\xe2\x80\xa6)。

\n
\n

  • 我知道你被否决了几次,但这实际上就是我想要的。只想有时将其关闭,并且尽可能简单:) (3认同)
  • 我希望这对我有用,但事实并非如此。VsCode 仍然拒绝在保存时不格式化。 (2认同)

Gui*_*tta 5

您是否尝试添加

"editor.formatOnSave": false
Run Code Online (Sandbox Code Playgroud)

在您的用户设置中而不是在您的项目设置中?

  • 可以确认默认情况下,VSCode 用户设置的“editor.formatOnSave”是关闭的。Prettier 可能会在这里做其他事情,因为即使此设置关闭,它也会在保存时格式化。 (5认同)
  • 它不起作用。 (3认同)
  • 要在 VS Code 中查找设置,请转到“文件”菜单 >“首选项”>“设置”。然后在搜索框中输入“formatOnSave”。取消选中该复选框。完毕! (2认同)