Vim Documentation: various



*various.txt*   For Vim version 5.4.  Last change: 1999 Jun 10


                  VIM REFERENCE MANUAL    by Bram Moolenaar



Various commands                                        *various*

1. Various commands     |various-cmds|
2. Online help          |online-help|

==============================================================================

1. Various commands                                     *various-cmds*


                                                        *CTRL-L*
CTRL-L                    Clear and redraw the screen.


                                                        *N<Del>*
<Del>                       When entering a number: Remove the last digit.
                        Note: if you like to use <BS> for this, add this
                        mapping to your .vimrc:
                                :map CTRL-V <BS>   CTRL-V <Del>
                        See |:fixdel| if your <Del> key does not do what you
                        want.


:as[cii]        or                                      *ga* *:as* *:ascii*
ga                    Print the ascii value of the character under the
                        cursor in decimal, hexadecimal and octal.  For
                        example, when the cursor is on a 'R':
                                <R>  82,  Hex 52,  Octal 122
                        When the character is a non-standard ASCII character,
                        but printable according to the 'isprint' option, the
                        non-printable version is also given.  When the
                        character is larger than 127, the <M-x> form is also
                        printed.  For example:
                                <~A>  <M-^A>  129,  Hex 81,  Octal 201
                                <p>  <|~>  <M-~>  254,  Hex fe,  Octal 376
                        (where <p> is a special character)
                        The <Nul> character in a file is stored internally as
                        <NL>, but it will be shown as:
                                <^@>  0,  Hex 00,  Octal 000
                        Mnemonic: Get Ascii value.  {not in Vi}


                                                        *:p* *:print*
:[range]p[rint]         Print [range] lines (default current line).
                        Note: If you are looking for a way to print your text
                        file, you need an external program for that.  In the
                        GUI you can use the File.Print menu entry.

:[range]p[rint] {count}
                        Print {count} lines, starting with [range] (default
                        current line |cmdline-ranges|).


                                                        *:P* *:Print*
:[range]P[rint] [count]
                        Just as ":print".  Was apparently added to Vi for
                        people that keep the shift key pressed too long...


                                                        *:l* *:list*
:[range]l[ist] [count]
                        Same as :print, but display unprintable characters
                        with '^'.


                                                        *:nu* *:number*
:[range]nu[mber] [count]
                        Same as :print, but precede each line with its line
                        number.  (See also 'highlight' option).


                                                        *:#*
:[range]# [count]      synonym for :number.


                                                        *:z*
:{range}z[+-^.=]{count} Display several lines of text surrounding the line
                        specified with {range}, or around the current line
                        if there is no {range}.  If there is a {count}, that's
                        how many lines you'll see; otherwise, the current
                        window size is used.

                        :z can be used either alone or followed by any of
                        several punctuation marks.  These have the following
                        effect:

 mark first line last line new location 
                        ----   ----------    ---------      ------------
                        +      current line  1 scr forward  1 scr forward
                        -      1 scr back    current line   current line
                        ^      2 scr back    1 scr back     1 scr back
                        .      1/2 scr back  1/2 scr fwd    1/2 src fwd
                        =      1/2 src back  1/2 scr fwd    current line

                        Specifying no mark at all is the same as "+".
                        If the mark is "=", a line of dashes is printed
                        around the current line.


                                                        *:=*
:=                    Print the cursor line number.


:norm[al][!] {commands}                                 *:norm* *:normal*
                        Execute Normal mode commands {commands}.  This makes
                        it possible to execute Normal mode commands typed on
                        the command-line.  {commands} is executed like it is
                        typed.  For undo all commands are undone together.
                        If the [!] is given, mappings will not be used.
                        {commands} should be a complete command.  If
                        {commands} does not finish a command, more characters
                        need to be typed, but the display isn't updated while
                        doing this.
                        Mostly useful for autocommands.  This command cannot
                        be followed by another command, since any '|' is
                        considered part of the command.
                        This command can be used recursively, but the depth is
                        limited by 'maxmapdepth'.
                        When this command is called from a non-remappable
                        mapping |:noremap|, the argument can be mapped anyway.
                        An alternative is to use |:execute|, which uses an
                        expression as argument.  This allows the use of
                        printable characters.  Example:
 :exe "normal \<c-w>\<c-w>"
                        Hint: If the {commands} ends in an <Esc>, Vim may
                        think it's the start of a function key, and 'ttimeout'
                        will apply, which makes things very slow, or even wait
                        indefenitely for anything to be typed.  Include the
                        [!] in this case.
                        {not in Vi, of course}
                        Not available when |+ex_extra| feature was disabled at
                        compile time.


:{range}norm[al][!] {commands}                          *:normal-range*
                        Execute Normal mode commands {commands} for each line
                        in the {range}.  Before executing the {commands}, the
                        cursor is positioned in the first column of the range,
                        for each line.  Otherwise it's the same as the
                        ":normal" command without a range.
                        {not in Vi}
                        Not available when |+ex_extra| feature was disabled at
                        compile time.


                                                        *:sh* *:shell*
:sh[ell]                This command starts a shell.  When the shell exits
                        (after the "exit" command) you return to Vim.  The
                        name for the shell command comes from 'shell' option.
                        Note: This doesn't work when Vim on the Amiga was
                        started in QuickFix mode from a compiler, because the
                        compiler will have set stdin to a non-interactive
                        mode.


                                                        *:!cmd* *:!*
:!{cmd}                 Execute {cmd} with the shell.  See also the 'shell'
                        and 'shelltype' option.
                        Any '!' in {cmd} is replaced with the previous
                        external command (see also 'cpoptions').  But not when
                        there is a backslash before the '!', then that
                        backslash is removed.  Example: ":!ls" followed by
                        ":!echo ! \! \\!" executes "echo ls ! \!".
                        After the command has been executed, the timestamp of
                        the current file is checked |timestamp|.
                        There cannot be a '|' in {cmd}, see |:bar|.
                        Also see |shell-window|.


                                                        *:!!*
:!!                  Repeat last ":!{cmd}".


                                                        *:ve* *:version*
:ve[rsion]              Print the version number of the editor.  If the
                        compiler used understands "__DATE__" the compilation
                        date is mentioned.  Otherwise a fixed release-date is
                        shown.
                        The following lines contain information about which
                        features were enabled when Vim was compiled.  When
                        there is a preceding '+', the feature is included,
                        when there is a '-' it is excluded.  To change this,
                        you have to edit feature.h and recompile Vim.
                        To check for this in an expression, see |has()|.
                        Here is an overview of the features:


                                                        *+feature-list*

*+ARP*                        Amiga only: ARP support included

*+autocmd*                |:autocmd|, automatic commands

*+browse*          |:browse| command

*+builtin_terms*    some terminals builtin |builtin-terms|

*++builtin_terms*  maximal terminals builtin |builtin-terms|

*+byte_offset*                support for 'o' flag in 'statusline' option

*+cindent*                |'cindent'|, C indenting

*+cmdline_compl*    command line completion |cmdline-completion|

*+cmdline_info*              |'showcmd'| and 

*+comments*              |'comments'| support

*+cryptv*          encryption support |encryption|

*+cscope*          |cscope| support

*+dialog_gui*          Support for |:confirm| with GUI dialog.

*+dialog_con*          Support for |:confirm| with console dialog.

*+dialog_con_gui*  Support for |:confirm| with GUI and console dialog.

*+digraphs*              |digraphs|

*+emacs_tags*          |emacs-tags| files

*+eval*                      expression evaluation |eval.txt|

*+ex_extra*              Vim's extra Ex commands: |:center|, 
                        |:normal|, |:retab| and |:right|

*+extra_search*              |'hlsearch'| and 

*+farsi*            |farsi| language

*+file_in_path*              |gf|, 

*+find_in_path*              include file searches: |[I|, 
                        |CTRL-W_CTRL-I|, |:checkpath|, etc.

*+fork*                      Unix only: |fork| shell commands

*+GUI_Athena*          Unix only: Athena |GUI|

*+GUI_BeOS*              BeOS only: BeOS |GUI|

*+GUI_GTK*                Unix only: GTK+ |GUI|

*+GUI_Motif*            Unix only: Motif |GUI|

*+hangul_input*              Hangul input support |hangul|

*+insert_expand*    |insert_expand| Insert mode completion

*+langmap*                |'langmap'|

*+linebreak*            |'linebreak'|, 

*+lispindent*          |'lisp'|

*+menu*                      |:menu|

*+mksession*            |:mksession|

*+modify_fname*              |filename-modifiers|

*+mouse*            Mouse handling |mouse-using|

*+mouse_dec*            Unix only: Dec terminal mouse handling

*+mouse_gpm*            Unix only: Linux console mouse handling.

*+mouse_netterm*    Unix only: netterm mouse handling

*+mouse_xterm*                Unix only: xterm mouse handling

*+multi_byte*          Korean and other languages |multibyte|

*+multi_byte_ime*  Win32 input method for multi_byte characters.

*+ole*                        Win32 GUI only: |ole-interface|

*+osfiletype*          Support for the 'osfiletype' option and filetype
                        checking in automatic commands.  |autocmd-osfiletypes|

*+perl*                      Perl interface |perl|

*+python*          Python interface |python|

*+quickfix*              |:make| and 

*+rightleft*            Right to left typing |'rightleft'|

*+scrollbind*          |'scrollbind'|

*+smartindent*                |'smartindent'|

*+sniff*            SniFF interface (no docs available...)

*+statusline*          Options 'statusline', 'rulerformat' and special
                        formats of 'titlestring' and 'iconstring'.

*+syntax*          Syntax highlighting |syntax|

*+system()*              Unix only: opposite of |+fork|

*+tag_binary*          binary searching in tags file |tag-binary-search|

*+tag_old_static*  old method for static tags |tag-old-static|

*+tag_any_white*    any white space allowed in tags file |tag-any-white|

*+tcl*                        Tcl interface |tcl|

*+terminfo*              uses |terminfo| instead of termcap

*+textobjects*                |text-objects| selection

*+tgetent*                non-Unix only: able to use external termcap

*+title*            Setting the window title |'title'|

*+user_commands*    User-defined commands. |user-commands|

*+viminfo*                |'viminfo'|

*+visualextra*                Extra Visual mode commands |blockwise-operators|

*+wildignore*          |'wildignore'|

*+wildmenu*              |'wildmenu'|

*+writebackup*                |'writebackup'| is default on

*+xim*                        X input method |xim|

*+xfontset*              X fontset support |xfontset|

*+xterm_clipboard*        Unix only: xterm clipboard handling

*+xterm_save*          Save and restore xterm screen |xterm-screens|

*+X11*                        Unix only: can restore window title |X11|

:ve[rsion] {nr}         Is now ignored.  This was previously used to check the
                        version number of a .vimrc file.  It was removed,
                        because you can now use the ":if" command for
                        version-dependent behavior.  {not in Vi}


                                                        *:redi* *:redir*
:redi[r][!] > {file}  Redirect messages to file {file}.  The messages which
                        are the output of commands are written to that file,
                        until redirection ends.  The messages are also still
                        shown on the screen.  When [!] is included, an
                        existing file is overwritten.  When [!] is omitted,
                        and {file} exists, this command fails.  {not in Vi}

:redi[r] >> {file}     Redirect message to file {file}.  Append if {file}
                        already exists.  {not in Vi}

:redi[r] @{a-zA-Z}      Redirect message to register {a-z}.  Append to the
                        contents of the register if its name is given
                        uppercase {A-Z}.  {not in Vi}

:redi[r] END            End redirecting messages.  {not in Vi}


                                                        *K*
K                      Run a program to lookup the keyword under the
                        cursor.  The name of the program is given with the
                        'keywordprg' (kp) option (default is "man").  The
                        keyword is formed of letters, numbers and the
                        characters in 'iskeyword'.  The keyword under or
                        right of the cursor is used.  The same can be done
                        with the command
 :!{program} {keyword}
                        There is an example of a program to use in the tools
                        directory of Vim.  It is called 'ref' and does a
                        simple spelling check.
                        Special cases:
                        - If 'keywordprg' is empty, the ":help" command is
                          used.  It's a good idea to include more characters
                          in 'iskeyword' then, to be able to find more help.
                        - When 'keywordprg' is equal to "man", a count before
                          "K" is inserted after the "man" command and before
                          the keyword.  For example, using "2K" while the
                          cursor is on "mkdir", results in:
 !man 2 mkdir
                        - When 'keywordprg' is equal to "man -s", a count
                          before "K" is inserted after the "-s".  If there is
                          no count, the "-s" is removed.
                        {not in Vi}


                                                        *v_K*
{Visual}K               Like "K", but use the visually highlighted text for
                        the keyword.  Only works when the highlighted text is
                        not more than one line.  {not in Vi}


[N]gs                                                   *gs* *:sl* *:sleep*
:[N]sl[eep] [N] [m]     Do nothing for [N] seconds.  When [m] is included,
                        sleep for [N] milliseconds.
 :sleep "sleep for one second
 :5sleep "sleep for five seconds
 :sleep 100m "sleep for hunderd millisonds
                        Can be interrupted with CTRL-C (CTRL-Break on MS-DOS).
                        "gs" stands for "goto sleep".  While sleeping the
                        cursor is positioned in the text (if visible).  {not
                        in Vi}


                                                        *g_CTRL-A*
g CTRL-A            Only when Vim was compiled with MEM_PROFILING defined
                        (which is very rare): print memory usage statistics.
                        Only useful for debugging Vim.

==============================================================================

2. Online help                                          *online-help*


                        *help* *<Help>* *:h* *:help* *<F1>* *i_<F1>* *i_<Help>*
<Help>                or
:h[elp]                 Split the window and display the help file in
                        read-only mode.  If there is a help window open
                        already, use that one.  {not in Vi}


                                                                *subject*
:h[elp] {subject}       Like ":help", additionally jump to the tag {subject}.
                        {subject} can include wildcards like "*", "?" and
                        "[a-z]":
                           :help z?    jump to help for any "z" command
                           :help z.   jump to the help for "z."
                        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.
                        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").
                        If there are several matches, you can have them listed
                        by hitting CTRL-D.  Example:
 :help cont<Ctrl-D>
                        To use a regexp |pattern|, 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| :tse z.
                        This 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 <LF> or <CR> to separate the help
                        command from a following command.  You need to type
                        CTRL-V first to insert the <LF> or <CR>.  Example:
 :help so<C-V><CR>only
                        {not in Vi}

The help file name can be set with the 'helpfile' option.  The initial height
of the help window can be set with the 'helpheight' option (default 20).
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 works with all characters.

Use "CTRL-T" to jump back.
Use ":q" to close the help window.


                                                        *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 when compiled with YXXY+GUI_GTK|}

top - back to help