*various.txt* For Vim version 5.6. Last change: 1999 Dec 21 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* When entering a number: Remove the last digit. Note: if you like to use for this, add this mapping to your .vimrc: :map CTRL-V CTRL-V See |:fixdel| if your 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': 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 form is also printed. For example: <~A> 129, Hex 81, Octal 201

<|~> 254, Hex fe, Octal 376 (where

is a special character) The character in a file is stored internally as , but it will be shown as: <^@> 0, Hex 00, Octal 000 Mnemonic: Get Ascii value. {not in Vi} *:p* *:pr* *: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. This implies that an insert command must be completed (to start Insert mode, see |:startinsert|). 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 \\" Hint: If the {commands} ends in an , 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|. On Unix the command normally runs in a non-interactive shell. If you want an interactive shell to be used (to use aliases) set 'shellcmdflag' to "-ic". 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 |'ruler'| *+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|, |:left|, |:normal|, |:retab| and |:right| *+extra_search* |'hlsearch'| and |'incsearch'| options. *+farsi* |farsi| language *+file_in_path* |gf|, |CTRL-W_f| and || *+find_in_path* include file searches: |[I|, |:isearch|, |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'|, |'breakat'| and |'showbreak'| *+lispindent* |'lisp'| *+menu* |:menu| *+mksession* |:mksession| *+modify_fname* |filename-modifiers| *+mouse* Mouse handling |mouse-using| *+mouse_dec* Unix only: Dec terminal mouse handling |dec-mouse| *+mouse_gpm* Unix only: Linux console mouse handling |gpm-mouse| *+mouse_netterm* Unix only: netterm mouse handling |netterm-mouse| *+mouse_xterm* Unix only: xterm mouse handling |xterm-mouse| *+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 |quickfix| commands *+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* ** *:h* *:help* ** *i_* *i_* 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 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 or to separate the help command from a following command. You need to type CTRL-V first to insert the or . Example: > :help soonly {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. "" and "g" 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 |+GUI_GTK|} vim:tw=78:ts=8:sw=8: