Vim's built-in manual is the authoritative source of information and documentation on every Vim feature, including configurations, built-in functions, and even Vimscript. While not the most beginner-friendly interface, if you know how to look through it, you can find what you need.
Start searching by executing
:help [subject], or
|Configuration, function name, or any other keyword with significance to Vim. Keywords with a leading colon |
From anywhere in Vim, execute
:help :help. This will open a horizontally split window with the manual page for the
:help by itself will take you to the Table of Contents for the manual itself.
Vim's help files are navigable like regular files (you can search for keywords within a file like normal, with
/), and additionally they are linked together by tags. Jump to the destination of a tag with
Tags are words surrounded by pipe
| characters. Versions 7.3 and up 'conceal' those pipe characters (
:help conceal) and highlight them.
For example, the Table of Contents page shows the following. All of the words highlighted in blue are tags and are surrounded by pipe characters. Typing
CTRL-] with the cursor on
quickref will take you to a useful page with a list of tags to useful Vim features.
:help [subject] attempts to find the "best" match for the argument you supply. The argument "can include wildcards like
[a-z] (any letter).
You can additionally use Vim's command-line completion with
:help spli<Ctrl-D> will display a list of help topics matching the pattern
To search for
Ctrl-based commands, like
:help ^V with a literal caret character, or even more specifically,
:help i_^V to get help on
Ctrl-V in insert mode.
As you see, vim has a nomenclature for its help topics. For instance, options are quoted (see
:h 'sw'), commands start with a colon (see
:h :split), functions end with empty brackets (see
:h split()), insert mode mappings start with
i_, command mode mappings start with
c_, and so on, except normal mode mappings that have no prefix.
|Search term||Help page|
|Configuration for line-length/text-width|
|Vimscript command to move the cursor around|
|Working with buffers; same as |