编辑器集成

Emacs

选项包括以下内容

PyCharm/IntelliJ IDEA

您可以通过多种方式在 PyCharm 中使用 Black

  1. 使用内置 Black 集成(PyCharm 2023.2 及更高版本)。此选项最简单易于设置。

  2. 使用 BlackConnect 插件作为本地服务器。此选项格式最快。它启动了 Black 的 HTTP 服务器,以避免在后续格式化中出现启动成本。

  3. 作为外部工具。

  4. 作为文件监视器。

内置 Black 集成

  1. 安装 black

    $ pip install black
    
  2. 转到 Preferences or Settings -> Tools -> Black 并根据您的喜好配置 Black。

作为本地服务器

  1. 使用 d 额外选项安装 Black。

    $ pip install 'black[d]'
    
  2. 安装 BlackConnect IntelliJ IDEs 插件

  3. 在 PyCharm/IntelliJ IDEA 中打开插件配置

    在 macOS 上

    PyCharm -> Preferences -> Tools -> BlackConnect

    在 Windows / Linux / BSD 上

    File -> Settings -> Tools -> BlackConnect

  4. Local Instance (shared between projects) 部分

    1. 选中 Start local blackd instance when plugin loads

    2. 按下 Detect 按钮,该按钮位于 Path 输入框附近。插件应该会检测到 blackd 可执行文件。

  5. Trigger Settings 部分,选中 Trigger on code reformat 以启用使用 Black 进行代码格式化。

  6. 通过选择 Code -> Reformat Code 或使用快捷键来格式化当前打开的文件。

  7. 可选地,在每次保存文件时运行 Black

    • 在插件配置的 Trigger Settings 部分,选中 Trigger when saving changed files

作为外部工具

  1. 安装 black

    $ pip install black
    
  2. 找到您的 black 安装文件夹。

    在 macOS / Linux / BSD 上

    $ which black
    /usr/local/bin/black  # possible location
    

    在 Windows 上

    $ where black
    %LocalAppData%\Programs\Python\Python36-32\Scripts\black.exe  # possible location
    

    请注意,如果您使用的是 PyCharm 检测到的虚拟环境,则无需执行此步骤。在这种情况下,black 的路径为 $PyInterpreterDirectory$/black

  3. 在 PyCharm/IntelliJ IDEA 中打开外部工具

    在 macOS 上

    PyCharm -> Preferences -> Tools -> External Tools

    在 Windows / Linux / BSD 上

    File -> Settings -> Tools -> External Tools

  4. 单击 + 图标以添加一个新的外部工具,并使用以下值

    • 名称:Black

    • 描述:Black 是 uncompromising Python 代码格式化程序。

    • 程序:<install_location_from_step_2>

    • 参数:"$FilePath$"

  5. 通过选择 Tools -> External Tools -> black 来格式化当前打开的文件。

    • 或者,您可以通过导航到 Preferences or Settings -> Keymap -> External Tools -> External Tools - Black 来设置键盘快捷键。

作为文件监视器

  1. 安装 black

    $ pip install black
    
  2. 找到您的 black 安装文件夹。

    在 macOS / Linux / BSD 上

    $ which black
    /usr/local/bin/black  # possible location
    

    在 Windows 上

    $ where black
    %LocalAppData%\Programs\Python\Python36-32\Scripts\black.exe  # possible location
    

    请注意,如果您使用的是 PyCharm 检测到的虚拟环境,则无需执行此步骤。在这种情况下,black 的路径为 $PyInterpreterDirectory$/black

  3. 确保您已安装 File Watchers 插件。

  4. 转到 Preferences or Settings -> Tools -> File Watchers 并单击 + 以添加新的监视器

    • 名称:Black

    • 文件类型:Python

    • 范围:项目文件

    • 程序:<install_location_from_step_2>

    • 参数:$FilePath$

    • 要刷新的输出路径:$FilePath$

    • 工作目录:$ProjectFileDir$

  • 在高级选项中

    • 取消选中“自动保存已编辑的文件以触发监视器”

    • 取消选中“在外部更改时触发监视器”

Wing IDE

Wing IDE 通过 Preference Settings(用于系统范围的设置)和 Project Properties(用于每个项目的设置或工作区特定的设置)支持 black,如 Wing 文档中关于 自动格式化 的说明。详细步骤如下:

先决条件

  • Wing IDE 版本 8.0+

  • 安装 black

    $ pip install black
    
  • 确保它从命令行运行,例如:

    $ black --help
    

首选项设置

如果您希望 Wing IDE 始终为每个项目使用 black 进行重新格式化,请按照以下步骤操作:

  1. 在菜单栏中导航到 Edit -> Preferences -> Editor -> Reformatting

  2. Auto-Reformatdisable(默认)设置为 Line after editWhole files before save

  3. ReformatterPEP8(默认)设置为 Black

项目属性

如果您只想为特定项目重新格式化,而不干预 Wing IDE 全局设置,请按照以下步骤操作:

  1. 在菜单栏中导航到 Project -> Project Properties -> Options

  2. Auto-ReformatUse Preferences setting(默认)设置为 Line after editWhole files before save

  3. ReformatterUse Preferences setting(默认)设置为 Black

Vim

官方插件

命令和快捷键

  • :Black 用于格式化整个文件(不支持范围);

    • 您可以选择使用与命令行中相同的参数传递 target_version=<version>

  • :BlackUpgrade 用于升级虚拟环境中的 Black;

  • :BlackVersion 用于获取当前使用的 Black 版本。

配置

  • g:black_fast(默认值为 0

  • g:black_linelength(默认值为 88

  • g:black_skip_string_normalization(默认值为 0

  • g:black_skip_magic_trailing_comma(默认值为 0

  • g:black_virtualenv(默认值为 ~/.vim/black~/.local/share/nvim/black

  • g:black_use_virtualenv(默认值为 1

  • g:black_target_version(默认值为 ""

  • g:black_quiet(默认值为 0

  • g:black_preview(默认值为 0

安装

此插件 **需要使用 Python 3.8+ 支持构建的 Vim 7.0+**。它需要 Python 3.8 才能在 Vim 进程中运行 Black,这比调用外部命令快得多。

vim-plug

使用 vim-plug 安装

Blackstable 分支跟踪官方版本的更新,可以用来简单地跟踪最新的稳定版本。

Plug 'psf/black', { 'branch': 'stable' }

另一个更明确且提供更多控制的选项是使用 vim-plugtag 选项配合 shell 通配符。这将解析为与给定模式匹配的最新标签。

以下匹配所有稳定版本(有关 Black 使用的版本方案文档,请参阅 发布流程 部分)

Plug 'psf/black', { 'tag': '*.*.*' }

以下演示了固定到特定年份的稳定样式(本例为 2022 年)

Plug 'psf/black', { 'tag': '22.*.*' }
Vundle

或使用 Vundle

Plugin 'psf/black'

并在终端中执行以下命令

$ cd ~/.vim/bundle/black
$ git checkout origin/stable -b stable
Arch Linux

在 Arch Linux 上,该插件与 python-black 软件包一起提供,因此在安装后,您无需任何额外设置即可在 Vim 中使用它。

Vim 8 原生插件管理

或者您可以从 plugin/black.vimautoload/black.vim 复制插件文件。

mkdir -p ~/.vim/pack/python/start/black/plugin
mkdir -p ~/.vim/pack/python/start/black/autoload
curl https://raw.githubusercontent.com/psf/black/stable/plugin/black.vim -o ~/.vim/pack/python/start/black/plugin/black.vim
curl https://raw.githubusercontent.com/psf/black/stable/autoload/black.vim -o ~/.vim/pack/python/start/black/autoload/black.vim

如果您需要更改才能与 Vim 8 的内置 packadd、Pathogen 等一起使用,请告诉我。

使用

首次运行时,该插件将使用正确的 Python 版本创建自己的虚拟环境,并自动安装 Black。您可以在稍后通过调用 :BlackUpgrade 并重启 Vim 来升级它。

如果您需要执行任何特殊操作来使您的虚拟环境正常工作并安装 Black(例如,您想运行主分支上的版本),请手动创建虚拟环境并将 g:black_virtualenv 指向它。该插件将使用它。

如果您希望使用 Black 的系统安装而不是虚拟环境,请将以下内容添加到您的 vimrc

let g:black_use_virtualenv = 0

请注意,:BlackUpgrade 命令仅在使用虚拟环境时可用且有用,因此,当未使用虚拟环境时,:BlackUpgrade 将被禁用。如果您需要升级 Black 的系统安装,请使用您的系统包管理器或 pip——无论您最初使用什么工具安装 Black

要在保存时运行 Black,请将以下几行添加到 .vimrcinit.vim

augroup black_on_save
  autocmd!
  autocmd BufWritePre *.py Black
augroup end

要在按键(例如以下的 F9)时运行 Black,请添加以下内容

nnoremap <F9> :Black<CR>

使用 ALE

  1. 安装 ale

  2. 安装 black

  3. 将以下内容添加到您的 vimrc

    let g:ale_fixers = {}
    let g:ale_fixers.python = ['black']
    

Gedit

gedit 是 GNOME 的默认文本编辑器,适用于类 Unix 操作系统。以以下方式打开 gedit

$ gedit <file_name>
  1. Go to edit > preferences > plugins

  2. 搜索 external tools 并激活它。

  3. Tools menu -> Manage external tools

  4. 使用 + 按钮添加一个新工具。

  5. 将以下内容复制到代码窗口。

#!/bin/bash
Name=$GEDIT_CURRENT_DOCUMENT_NAME
black $Name
  • 如果您需要,请设置键盘快捷键,例如 ctrl-B

  • 保存:Nothing

  • 输入:Nothing

  • 输出:如果您需要,请使用 Display in bottom pane

  • 如果您需要,请更改工具的名称。

使用您的键盘快捷键或 Tools -> External Tools 来使用您的新工具。当您关闭并重新打开文件时,Black 将完成其工作。

Visual Studio Code

SublimeText

对于 SublimeText 3,请使用 sublack 插件。对于更高版本,建议使用以下文档中记录的 LSP

Python LSP 服务器

如果您的编辑器支持 语言服务器协议(Atom、Sublime Text、Visual Studio Code 等),您可以将 Python LSP 服务器python-lsp-black 插件一起使用。

Atom/Nuclide

使用 python-blackformatters-python

Gradle(构建工具)

使用 Spotless 插件。

Kakoune

将以下钩子添加到您的 kakrc,然后使用 :format 运行 Black

hook global WinSetOption filetype=python %{
    set-option window formatcmd 'black -q  -'
}

Thonny

使用 Thonny-black-formatter