黑色不支持“格式选择”命令 - VS Code 错误

12 python formatting visual-studio-code vscode-settings python-black

我需要在 Vs Code 中缩进我的 python 文件。我按照正常程序,

On Windows Shift + Alt + F
On Mac Shift + Option + F
On Linux Ctrl + Shift + I
Run Code Online (Sandbox Code Playgroud)

但我的问题是每次我尝试格式化 python 文件时,它都会说

黑色不支持“格式选择”

所以有人可以解释这里出了什么问题?我的python版本是Python 3.7.6

VS代码详情:

Version: 1.46.0 (user setup)
Commit: a5d1cc28bb5da32ec67e86cc50f84c67cc690321
Date: 2020-06-10T09:03:20.462Z
Electron: 7.3.1
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0

OS: Windows_NT x64 10.0.18363 
Run Code Online (Sandbox Code Playgroud)

YaO*_*OzI 26

在我的情况下(black在 VS Code Settings 中选择作为 Python Formatting Provider),我每次将一些文本粘贴到编辑器时都会遇到此警告。

并且VS Code的官方文档专门针对它的解决方案

使用黑色格式化程序时,VS Code 在将源代码粘贴到编辑器中时会发出以下警告:黑色不支持“格式选择”命令。

为防止出现此警告,请将以下条目添加到您的用户或工作区设置以禁用 Python 文件的粘贴格式:

"[python]": {
    "editor.formatOnPaste": false
}
Run Code Online (Sandbox Code Playgroud)

  • 根据官方文档,您还必须有 `"[python]": { "editor.formatOnSaveMode": "file" }` (2认同)

sul*_*rza 16

确保编辑器:保存模式下的格式 > 文件 在此输入图像描述


Bre*_*non 6

听起来您的键绑定设置为运行“格式选择”而不是“格式文档”;黑色只支持后者,不支持前者。如果您运行“格式化文档”命令,它应该可以正常工作。

  • “autopep8”确实支持“格式选择”,而不是“黑色”。这是我使用“autopep8”的唯一原因,其余的我更喜欢“black”。 (5认同)
  • 如果我需要“格式选择”,你建议使用什么格式化程序? (2认同)

nev*_*ves 5

Black 在设计上不支持格式选择选项。在这个bug中你可以找到原因

如果您想使用黑色,则必须配置为格式化所有文件并禁用格式选择。您的 settings.json 必须具有以下配置:

 "[python]": { 
     "editor.formatOnSaveMode": "file",       
     "editor.formatOnPaste": false
 }
Run Code Online (Sandbox Code Playgroud)

如果您确实想在现有项目中使用 Black,我的建议是尝试使用darker。我已经在我开始使用黑色开发的代码中成功地使用了它,但同事没有使用。现在我可以在不破坏信息的情况下编辑它git blame