diff --git a/docs/html/topics/configuration.md b/docs/html/topics/configuration.md
index 12bad0ad7a4..aec9916ccd5 100644
--- a/docs/html/topics/configuration.md
+++ b/docs/html/topics/configuration.md
@@ -2,11 +2,12 @@
# Configuration
-pip allows a user to change its behaviour via 3 mechanisms:
+pip allows a user to change its behaviour via 3 mechanisms.
+These mechanisms are listed in order of priority, highest to lowest:
-- command line options
-- environment variables
-- configuration files
+1. command line options
+2. [environment variables](env-variables)
+3. [configuration files](config-file)
This page explains how the configuration files and environment variables work,
and how they are related to pip's various command line options.
@@ -22,13 +23,18 @@ and how they are related to pip's various command line options.
Configuration files can change the default values for command line options.
The files are written using standard INI format.
-pip has 3 "levels" of configuration files:
+pip has 3 "levels" of configuration files, in order of priority, highest to lowest:
-- `global`: system-wide configuration file, shared across users.
-- `user`: per-user configuration file.
- `site`: per-environment configuration file; i.e. per-virtualenv.
+- `user`: per-user configuration file.
+- `global`: system-wide configuration file, shared across users.
-Additionally, environment variables can be specified which will override any of the above.
+```{important}
+Values in command-specific sections override values in the global section.
+
+Options specified through environment variables or command line options
+take precedence over configuration files.
+```
### Location
@@ -199,42 +205,45 @@ trusted-host =
This enables users to add additional values in the order of entry for such
command line arguments.
-## Environment Variables
+(env-variables)=
-pip's command line options can be set with environment variables using the
-format `PIP_` . Dashes (`-`) have to be replaced with
-underscores (`_`).
+## Environment Variables
-- `PIP_TIMEOUT=60` is the same as `--timeout=60`
-- ```
- PIP_FIND_LINKS="http://mirror1.example.com http://mirror2.example.com"
- ```
+All pip command line options have equivalent environment variables,
+they can be specified using:
+```shell
+PIP_
+```
- is the same as
+Dashes (`-`) have to be replaced with underscores (`_`).
- ```
- --find-links=http://mirror1.example.com --find-links=http://mirror2.example.com
- ```
+Examples:
-Repeatable options that do not take a value (such as `--verbose`) can be
-specified using the number of repetitions:
+```shell
+PIP_VERBOSE=3 PIP_CACHE_DIR=/home/user/tmp pip ...
+PIP_FIND_LINKS="http://mirror1.example.com http://mirror2.example.com" pip ...
+PIP_NO_DEPS=yes pip ...
+# are equivalent to
+pip ... -vvv --cache-dir=/home/user/tmp
+pip ... --find-links=http://mirror1.example.com --find-links=http://mirror2.example.com
+pip ... --no-deps
+```
-- `PIP_VERBOSE=3` is the same as `pip install -vvv`
+All option values follows the same rules as for the [configuration files](config-file).
```{note}
Environment variables set to an empty string (like with `export X=` on Unix) will **not** be treated as false.
Use `no`, `false` or `0` instead.
-```
-## Precedence / Override order
-
-Command line options override environment variables, which override the
-values in a configuration file. Within the configuration file, values in
-command-specific sections override values in the global section.
+Consequently, boolean options prefixed with `--no-*` can be disabled by using
+truthy values, e.g. `PIP_NO_CACHE_DIR=true`.
+```
-Examples:
+```{warning}
+`PIP_NO_BUILD_ISOLATION` functions **opposite** to how it reads. For example, to
+disable build isolation, `PIP_NO_BUILD_ISOLATION` must be set to a **falsy** value,
+e.g. `PIP_NO_BUILD_ISOLATION=off`.
-- `--host=foo` overrides `PIP_HOST=foo`
-- `PIP_HOST=foo` overrides a config file with `[global] host = foo`
-- A command specific section in the config file `[] host = bar`
- overrides the option with same name in the `[global]` config file section.
+This confusing behavior is known and will be addressed, please see issue {issue}`5735` for
+discussion on potential fixes.
+```