-- `g:black_fast` (defaults to `0`)
-- `g:black_linelength` (defaults to `88`)
-- `g:black_skip_string_normalization` (defaults to `0`)
-- `g:black_virtualenv` (defaults to `~/.vim/black` or `~/.local/share/nvim/black`)
-
-To install with [vim-plug](https://github.com/junegunn/vim-plug):
-
-```
-Plug 'psf/black'
-```
-
-or with [Vundle](https://github.com/VundleVim/Vundle.vim):
-
-```
-Plugin 'psf/black'
-```
-
-or you can copy the plugin from
-[plugin/black.vim](https://github.com/psf/black/tree/master/plugin/black.vim).
-
-```
-mkdir -p ~/.vim/pack/python/start/black/plugin
-curl https://raw.githubusercontent.com/psf/black/master/plugin/black.vim -o ~/.vim/pack/python/start/black/plugin/black.vim
-```
-
-Let me know if this requires any changes to work with Vim 8's builtin `packadd`, or
-Pathogen, and so on.
-
-This plugin **requires Vim 7.0+ built with Python 3.6+ support**. It needs Python 3.6 to
-be able to run _Black_ inside the Vim process which is much faster than calling an
-external command.
-
-On first run, the plugin creates its own virtualenv using the right Python version and
-automatically installs _Black_. You can upgrade it later by calling `:BlackUpgrade` and
-restarting Vim.
-
-If you need to do anything special to make your virtualenv work and install _Black_ (for
-example you want to run a version from master), create a virtualenv manually and point
-`g:black_virtualenv` to it. The plugin will use it.
-
-To run _Black_ on save, add the following line to `.vimrc` or `init.vim`:
-
-```
-autocmd BufWritePre *.py execute ':Black'
-```
-
-To run _Black_ on a key press (e.g. F9 below), add this:
-
-```
-nnoremap <F9> :Black<CR>
-```
-
-**How to get Vim with Python 3.6?** On Ubuntu 17.10 Vim comes with Python 3.6 by
-default. On macOS with Homebrew run: `brew install vim`. When building Vim from source,
-use: `./configure --enable-python3interp=yes`. There's many guides online how to do
-this.
-
-### Visual Studio Code
-
-Use the
-[Python extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python)
-([instructions](https://code.visualstudio.com/docs/python/editing#_formatting)).
-
-### SublimeText 3
-
-Use [sublack plugin](https://github.com/jgirardet/sublack).
-
-### Jupyter Notebook Magic
-
-Use [blackcellmagic](https://github.com/csurfer/blackcellmagic).
-
-### Python Language Server
-
-If your editor supports the [Language Server Protocol](https://langserver.org/) (Atom,
-Sublime Text, Visual Studio Code and many more), you can use the
-[Python Language Server](https://github.com/palantir/python-language-server) with the
-[pyls-black](https://github.com/rupert/pyls-black) plugin.
-
-### Atom/Nuclide
-
-Use [python-black](https://atom.io/packages/python-black).
-
-### Kakoune
-
-Add the following hook to your kakrc, then run black with `:format`.
-
-```
-hook global WinSetOption filetype=python %{
- set-option window formatcmd 'black -q -'
-}
-```
-
-### Thonny
-
-Use [Thonny-black-code-format](https://github.com/Franccisco/thonny-black-code-format).
-
-### Other editors
-
-Other editors will require external contributions.
-
-Patches welcome! ✨ 🍰 ✨
-
-Any tool that can pipe code through _Black_ using its stdio mode (just
-[use `-` as the file name](https://www.tldp.org/LDP/abs/html/special-chars.html#DASHREF2)).
-The formatted code will be returned on stdout (unless `--check` was passed). _Black_
-will still emit messages on stderr but that shouldn't affect your use case.
-
-This can be used for example with PyCharm's or IntelliJ's
-[File Watchers](https://www.jetbrains.com/help/pycharm/file-watchers.html).
-
-## blackd
-
-`blackd` is a small HTTP server that exposes _Black_'s functionality over a simple
-protocol. The main benefit of using it is to avoid paying the cost of starting up a new
-_Black_ process every time you want to blacken a file.
-
-### Usage
-
-`blackd` is not packaged alongside _Black_ by default because it has additional
-dependencies. You will need to do `pip install black[d]` to install it.
-
-You can start the server on the default port, binding only to the local interface by
-running `blackd`. You will see a single line mentioning the server's version, and the
-host and port it's listening on. `blackd` will then print an access log similar to most
-web servers on standard output, merged with any exception traces caused by invalid
-formatting requests.
-
-`blackd` provides even less options than _Black_. You can see them by running
-`blackd --help`:
-
-```text
-Usage: blackd [OPTIONS]
-
-Options:
- --bind-host TEXT Address to bind the server to.
- --bind-port INTEGER Port to listen on
- --version Show the version and exit.
- -h, --help Show this message and exit.
-```
-
-There is no official blackd client tool (yet!). You can test that blackd is working
-using `curl`:
-
-```
-blackd --bind-port 9090 & # or let blackd choose a port
-curl -s -XPOST "localhost:9090" -d "print('valid')"
-```
-
-### Protocol
-
-`blackd` only accepts `POST` requests at the `/` path. The body of the request should
-contain the python source code to be formatted, encoded according to the `charset` field
-in the `Content-Type` request header. If no `charset` is specified, `blackd` assumes
-`UTF-8`.
-
-There are a few HTTP headers that control how the source is formatted. These correspond
-to command line flags for _Black_. There is one exception to this: `X-Protocol-Version`
-which if present, should have the value `1`, otherwise the request is rejected with
-`HTTP 501` (Not Implemented).
-
-The headers controlling how code is formatted are:
-
-- `X-Line-Length`: corresponds to the `--line-length` command line flag.
-- `X-Skip-String-Normalization`: corresponds to the `--skip-string-normalization`
- command line flag. If present and its value is not the empty string, no string
- normalization will be performed.
-- `X-Fast-Or-Safe`: if set to `fast`, `blackd` will act as _Black_ does when passed the
- `--fast` command line flag.
-- `X-Python-Variant`: if set to `pyi`, `blackd` will act as _Black_ does when passed the
- `--pyi` command line flag. Otherwise, its value must correspond to a Python version or
- a set of comma-separated Python versions, optionally prefixed with `py`. For example,
- to request code that is compatible with Python 3.5 and 3.6, set the header to
- `py3.5,py3.6`.
-- `X-Diff`: corresponds to the `--diff` command line flag. If present, a diff of the
- formats will be output.
-
-If any of these headers are set to invalid values, `blackd` returns a `HTTP 400` error
-response, mentioning the name of the problematic header in the message body.
-
-Apart from the above, `blackd` can produce the following response codes:
-
-- `HTTP 204`: If the input is already well-formatted. The response body is empty.
-- `HTTP 200`: If formatting was needed on the input. The response body contains the
- blackened Python code, and the `Content-Type` header is set accordingly.
-- `HTTP 400`: If the input contains a syntax error. Details of the error are returned in
- the response body.
-- `HTTP 500`: If there was any kind of error while trying to format the input. The
- response body contains a textual representation of the error.
-
-The response headers include a `X-Black-Version` header containing the version of
-_Black_.
-
-## Version control integration
-
-Use [pre-commit](https://pre-commit.com/). Once you
-[have it installed](https://pre-commit.com/#install), add this to the
-`.pre-commit-config.yaml` in your repository:
-
-```yaml
-repos:
- - repo: https://github.com/psf/black
- rev: stable
- hooks:
- - id: black
- language_version: python3.6
-```
-
-Then run `pre-commit install` and you're ready to go.
-
-Avoid using `args` in the hook. Instead, store necessary configuration in
-`pyproject.toml` so that editors and command-line usage of Black all behave consistently
-for your project. See _Black_'s own
-[pyproject.toml](https://github.com/psf/black/blob/master/pyproject.toml) for an
-example.
-
-If you're already using Python 3.7, switch the `language_version` accordingly. Finally,
-`stable` is a tag that is pinned to the latest release on PyPI. If you'd rather run on
-master, this is also an option.
-
-## Ignoring unmodified files
-
-_Black_ remembers files it has already formatted, unless the `--diff` flag is used or
-code is passed via standard input. This information is stored per-user. The exact
-location of the file depends on the _Black_ version and the system on which _Black_ is
-run. The file is non-portable. The standard location on common operating systems is:
-
-- Windows:
- `C:\\Users\<username>\AppData\Local\black\black\Cache\<version>\cache.<line-length>.<file-mode>.pickle`
-- macOS:
- `/Users/<username>/Library/Caches/black/<version>/cache.<line-length>.<file-mode>.pickle`
-- Linux:
- `/home/<username>/.cache/black/<version>/cache.<line-length>.<file-mode>.pickle`
-
-`file-mode` is an int flag that determines whether the file was formatted as 3.6+ only,
-as .pyi, and whether string normalization was omitted.
-
-To override the location of these files on macOS or Linux, set the environment variable
-`XDG_CACHE_HOME` to your preferred location. For example, if you want to put the cache
-in the directory you're running _Black_ from, set `XDG_CACHE_HOME=.cache`. _Black_ will
-then write the above files to `.cache/black/<version>/`.