123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411 |
- *helphelp.txt* For Vim version 9.0. Last change: 2022 Jan 08
- VIM REFERENCE MANUAL by Bram Moolenaar
- Help on help files *helphelp*
- 1. Help commands |online-help|
- 2. Translated help files |help-translated|
- 3. Writing help files |help-writing|
- ==============================================================================
- 1. Help commands *online-help*
- *help* *<Help>* *:h* *:help* *<F1>* *i_<F1>* *i_<Help>*
- <Help> or
- :h[elp] Open a window and display the help file in read-only
- mode. If there is a help window open already, use
- that one. Otherwise, if the current window uses the
- full width of the screen or is at least 80 characters
- wide, the help window will appear just above the
- current window. Otherwise the new window is put at
- the very top.
- The 'helplang' option is used to select a language, if
- the main help file is available in several languages.
- *{subject}* *E149* *E661*
- :h[elp] {subject} Like ":help", additionally jump to the tag {subject}.
- For example: >
- :help options
- < {subject} can include wildcards such as "*", "?" and
- "[a-z]":
- :help z? jump to help for any "z" command
- :help z. jump to the help for "z."
- But when a tag exists it is taken literally:
- :help :? jump to help for ":?"
- If there is no full match for the pattern, or there
- are several matches, the "best" match will be used.
- A sophisticated algorithm is used to decide which
- match is better than another one. These items are
- considered in the computation:
- - A match with same case is much better than a match
- with different case.
- - A match that starts after a non-alphanumeric
- character is better than a match in the middle of a
- word.
- - A match at or near the beginning of the tag is
- better than a match further on.
- - The more alphanumeric characters match, the better.
- - The shorter the length of the match, the better.
- The 'helplang' option is used to select a language, if
- the {subject} is available in several languages.
- To find a tag in a specific language, append "@ab",
- where "ab" is the two-letter language code. See
- |help-translated|.
- Note that the longer the {subject} you give, the less
- matches will be found. You can get an idea how this
- all works by using commandline completion (type CTRL-D
- after ":help subject" |c_CTRL-D|).
- If there are several matches, you can have them listed
- by hitting CTRL-D. Example: >
- :help cont<Ctrl-D>
- < Instead of typing ":help CTRL-V" to search for help
- for CTRL-V you can type: >
- :help ^V
- < This also works together with other characters, for
- example to find help for CTRL-V in Insert mode: >
- :help i^V
- <
- It is also possible to first do ":help" and then
- use ":tag {pattern}" in the help window. The
- ":tnext" command can then be used to jump to other
- matches, "tselect" to list matches and choose one. >
- :help index
- :tselect /.*mode
- < When there is no argument you will see matches for
- "help", to avoid listing all possible matches (that
- would be very slow).
- The number of matches displayed is limited to 300.
- The `:help` command can be followed by '|' and another
- command, but you don't need to escape the '|' inside a
- help command. So these both work: >
- :help |
- :help k| only
- < Note that a space before the '|' is seen as part of
- the ":help" argument.
- You can also use <NL> or <CR> to separate the help
- command from a following command. You need to type
- CTRL-V first to insert the <NL> or <CR>. Example: >
- :help so<C-V><CR>only
- :h[elp]! [subject] Like ":help", but in non-English help files prefer to
- find a tag in a file with the same language as the
- current file. See |help-translated|.
- *:helpc* *:helpclose*
- :helpc[lose] Close one help window, if there is one.
- Vim will try to restore the window layout (including
- cursor position) to the same layout it was before
- opening the help window initially. This might cause
- triggering several autocommands.
- *:helpg* *:helpgrep*
- :helpg[rep] {pattern}[@xx]
- Search all help text files and make a list of lines
- in which {pattern} matches. Jumps to the first match.
- The optional [@xx] specifies that only matches in the
- "xx" language are to be found.
- You can navigate through the matches with the
- |quickfix| commands, e.g., |:cnext| to jump to the
- next one. Or use |:cwindow| to get the list of
- matches in the quickfix window.
- {pattern} is used as a Vim regexp |pattern|.
- 'ignorecase' is not used, add "\c" to ignore case.
- Example for case sensitive search: >
- :helpgrep Uganda
- < Example for case ignoring search: >
- :helpgrep uganda\c
- < Example for searching in French help: >
- :helpgrep backspace@fr
- < The pattern does not support line breaks, it must
- match within one line. You can use |:grep| instead,
- but then you need to get the list of help files in a
- complicated way.
- Cannot be followed by another command, everything is
- used as part of the pattern. But you can use
- |:execute| when needed.
- Compressed help files will not be searched (Fedora
- compresses the help files).
- *:lh* *:lhelpgrep*
- :lh[elpgrep] {pattern}[@xx]
- Same as ":helpgrep", except the location list is used
- instead of the quickfix list. If the help window is
- already opened, then the location list for that window
- is used. Otherwise, a new help window is opened and
- the location list for that window is set. The
- location list for the current window is not changed
- then.
- *:exu* *:exusage*
- :exu[sage] Show help on Ex commands. Added to simulate the Nvi
- command.
- *:viu* *:viusage*
- :viu[sage] Show help on Normal mode commands. Added to simulate
- the Nvi command.
- When no argument is given to |:help| the file given with the 'helpfile' option
- will be opened. Otherwise the specified tag is searched for in all "doc/tags"
- files in the directories specified in the 'runtimepath' option.
- If you would like to open the help in the current window, see this tip:
- |help-curwin|.
- The initial height of the help window can be set with the 'helpheight' option
- (default 20).
- *help-buffer-options*
- When the help buffer is created, several local options are set to make sure
- the help text is displayed as it was intended:
- 'iskeyword' nearly all ASCII chars except ' ', '*', '"' and '|'
- 'foldmethod' "manual"
- 'tabstop' 8
- 'arabic' off
- 'binary' off
- 'buflisted' off
- 'cursorbind' off
- 'diff' off
- 'foldenable' off
- 'list' off
- 'modifiable' off
- 'number' off
- 'relativenumber' off
- 'rightleft' off
- 'scrollbind' off
- 'spell' off
- Jump to specific subjects by using tags. This can be done in two ways:
- - Use the "CTRL-]" command while standing on the name of a command or option.
- This only works when the tag is a keyword. "<C-Leftmouse>" and
- "g<LeftMouse>" work just like "CTRL-]".
- - use the ":ta {subject}" command. This also works with non-keyword
- characters.
- Use CTRL-T or CTRL-O to jump back.
- Use ":q" to close the help window.
- If there are several matches for an item you are looking for, this is how you
- can jump to each one of them:
- 1. Open a help window
- 2. Use the ":tag" command with a slash prepended to the tag. E.g.: >
- :tag /min
- 3. Use ":tnext" to jump to the next matching tag.
- It is possible to add help files for plugins and other items. You don't need
- to change the distributed help files for that. See |add-local-help|.
- To write a local help file, see |write-local-help|.
- Note that the title lines from the local help files are automagically added to
- the "LOCAL ADDITIONS" section in the "help.txt" help file |local-additions|.
- This is done when viewing the file in Vim, the file itself is not changed. It
- is done by going through all help files and obtaining the first line of each
- file. The files in $VIMRUNTIME/doc are skipped.
- *help-xterm-window*
- If you want to have the help in another xterm window, you could use this
- command: >
- :!xterm -e vim +help &
- <
- *:helpfind* *:helpf*
- :helpf[ind] Like |:help|, but use a dialog to enter the argument.
- Only for backwards compatibility. It now executes the
- ToolBar.FindHelp menu entry instead of using a builtin
- dialog. {only when compiled with |+GUI_GTK|}
- *:helpt* *:helptags*
- *E150* *E151* *E152* *E153* *E154* *E670*
- :helpt[ags] [++t] {dir}
- Generate the help tags file(s) for directory {dir}.
- When {dir} is ALL then all "doc" directories in
- 'runtimepath' will be used.
- All "*.txt" and "*.??x" files in the directory and
- sub-directories are scanned for a help tag definition
- in between stars. The "*.??x" files are for
- translated docs, they generate the "tags-??" file, see
- |help-translated|. The generated tags files are
- sorted.
- When there are duplicates an error message is given.
- An existing tags file is silently overwritten.
- The optional "++t" argument forces adding the
- "help-tags" tag. This is also done when the {dir} is
- equal to $VIMRUNTIME/doc.
- To rebuild the help tags in the runtime directory
- (requires write permission there): >
- :helptags $VIMRUNTIME/doc
- ==============================================================================
- 2. Translated help files *help-translated*
- It is possible to add translated help files, next to the original English help
- files. Vim will search for all help in "doc" directories in 'runtimepath'.
- This is only available when compiled with the |+multi_lang| feature.
- At this moment translations are available for:
- Chinese - multiple authors
- French - translated by David Blanchet
- Italian - translated by Antonio Colombo
- Japanese - multiple authors
- Polish - translated by Mikolaj Machowski
- Russian - translated by Vassily Ragosin
- See the Vim website to find them: http://www.vim.org/translations.php
- A set of translated help files consists of these files:
- help.abx
- howto.abx
- ...
- tags-ab
- "ab" is the two-letter language code. Thus for Italian the names are:
- help.itx
- howto.itx
- ...
- tags-it
- The 'helplang' option can be set to the preferred language(s). The default is
- set according to the environment. Vim will first try to find a matching tag
- in the preferred language(s). English is used when it cannot be found.
- To find a tag in a specific language, append "@ab" to a tag, where "ab" is the
- two-letter language code. Example: >
- :he user-manual@it
- :he user-manual@en
- The first one finds the Italian user manual, even when 'helplang' is empty.
- The second one finds the English user manual, even when 'helplang' is set to
- "it".
- When using command-line completion for the ":help" command, the "@en"
- extension is only shown when a tag exists for multiple languages. When the
- tag only exists for English "@en" is omitted. When the first candidate has an
- "@ab" extension and it matches the first language in 'helplang' "@ab" is also
- omitted.
- When using |CTRL-]| or ":help!" in a non-English help file Vim will try to
- find the tag in the same language. If not found then 'helplang' will be used
- to select a language.
- Help files must use latin1 or utf-8 encoding. Vim assumes the encoding is
- utf-8 when finding non-ASCII characters in the first line. Thus you must
- translate the header with "For Vim version".
- The same encoding must be used for the help files of one language in one
- directory. You can use a different encoding for different languages and use
- a different encoding for help files of the same language but in a different
- directory.
- Hints for translators:
- - Do not translate the tags. This makes it possible to use 'helplang' to
- specify the preferred language. You may add new tags in your language.
- - When you do not translate a part of a file, add tags to the English version,
- using the "tag@en" notation.
- - Make a package with all the files and the tags file available for download.
- Users can drop it in one of the "doc" directories and start use it.
- Report this to Bram, so that he can add a link on www.vim.org.
- - Use the |:helptags| command to generate the tags files. It will find all
- languages in the specified directory.
- ==============================================================================
- 3. Writing help files *help-writing*
- For ease of use, a Vim help file for a plugin should follow the format of the
- standard Vim help files, except for the first line. If you are writing a new
- help file it's best to copy one of the existing files and use it as a
- template.
- The first line in a help file should have the following format:
- *plugin_name.txt* {short description of the plugin}
- The first field is a help tag where ":help plugin_name" will jump to. The
- remainder of the line, after a Tab, describes the plugin purpose in a short
- way. This will show up in the "LOCAL ADDITIONS" section of the main help
- file. Check there that it shows up properly: |local-additions|.
- If you want to add a version number or last modification date, put it in the
- second line, right aligned.
- At the bottom of the help file, place a Vim modeline to set the 'textwidth'
- and 'tabstop' options and the 'filetype' to "help". Never set a global option
- in such a modeline, that can have undesired consequences.
- TAGS
- To define a help tag, place the name between asterisks (*tag-name*). The
- tag-name should be different from all the Vim help tag names and ideally
- should begin with the name of the Vim plugin. The tag name is usually right
- aligned on a line.
- When referring to an existing help tag and to create a hot-link, place the
- name between two bars (|) eg. |help-writing|.
- When referring to a Vim command and to create a hot-link, place the
- name between two backticks, eg. inside `:filetype`. You will see this is
- highlighted as a command, like a code block (see below).
- When referring to a Vim option in the help file, place the option name between
- two single quotes, eg. 'statusline'
- HIGHLIGHTING
- To define a column heading, use a tilde character at the end of the line.
- This will highlight the column heading in a different color. E.g.
- Column heading~
- To separate sections in a help file, place a series of '=' characters in a
- line starting from the first column. The section separator line is highlighted
- differently.
- To quote a block of ex-commands verbatim, place a greater than (>) character
- at the end of the line before the block and a less than (<) character as the
- first non-blank on a line following the block. Any line starting in column 1
- also implicitly stops the block of ex-commands before it. E.g. >
- function Example_Func()
- echo "Example"
- endfunction
- <
- The following are highlighted differently in a Vim help file:
- - a special key name expressed either in <> notation as in <PageDown>, or
- as a Ctrl character as in CTRL-X
- - anything between {braces}, e.g. {lhs} and {rhs}
- The word "Note", "Notes" and similar automagically receive distinctive
- highlighting. So do these:
- *Todo something to do
- *Error something wrong
- You can find the details in $VIMRUNTIME/syntax/help.vim
- *inclusion*
- Vim is for everybody, no matter race, gender or anything. Some people make a
- big deal about using "he" or "his" when referring to the user, thinking it
- means we assume the user is male. That is not the case, it's just a habit of
- writing help text, which quite often is many years old. Also, a lot of the
- text is written by contributors for whom English is not their first language.
- We do not make any assumptions about the gender of the user, no matter how the
- text is phrased. Some people have suggested using "they", but that is not
- regular English. We do not want to spend much time on this discussion. The
- goal is that the reader understands how Vim works, the exact wording is
- secondary.
- vim:tw=78:ts=8:noet:ft=help:norl:
|