Mercurial > vim
annotate runtime/doc/various.txt @ 2214:f8222d1f9a73 vim73
Included patch for persistent undo. Lots of changes and added test.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Sun, 23 May 2010 23:34:36 +0200 |
parents | 7c8c7c95a865 |
children | 1e48f569b03d |
rev | line source |
---|---|
2154
7c8c7c95a865
First step in the Vim 7.3 branch. Changed version numbers.
Bram Moolenaar <bram@zimbu.org>
parents:
2152
diff
changeset
|
1 *various.txt* For Vim version 7.3a. Last change: 2010 May 13 |
7 | 2 |
3 | |
4 VIM REFERENCE MANUAL by Bram Moolenaar | |
5 | |
6 | |
7 Various commands *various* | |
8 | |
9 1. Various commands |various-cmds| | |
10 2. Online help |online-help| | |
15 | 11 3. Using Vim like less or more |less| |
7 | 12 |
13 ============================================================================== | |
14 1. Various commands *various-cmds* | |
15 | |
16 *CTRL-L* | |
348 | 17 CTRL-L Clear and redraw the screen. The redraw may happen |
18 later, after processing typeahead. | |
7 | 19 |
20 *:redr* *:redraw* | |
21 :redr[aw][!] Redraw the screen right now. When ! is included it is | |
22 cleared first. | |
23 Useful to update the screen halfway executing a script | |
24 or function. Also when halfway a mapping and | |
25 'lazyredraw' is set. | |
26 | |
27 *:redraws* *:redrawstatus* | |
28 :redraws[tatus][!] Redraw the status line of the current window. When ! | |
29 is included all status lines are redrawn. | |
30 Useful to update the status line(s) when 'statusline' | |
31 includes an item that doesn't cause automatic | |
32 updating. | |
33 | |
34 *N<Del>* | |
35 <Del> When entering a number: Remove the last digit. | |
36 Note: if you like to use <BS> for this, add this | |
37 mapping to your .vimrc: > | |
38 :map CTRL-V <BS> CTRL-V <Del> | |
39 < See |:fixdel| if your <Del> key does not do what you | |
40 want. | |
41 | |
42 :as[cii] or *ga* *:as* *:ascii* | |
43 ga Print the ascii value of the character under the | |
44 cursor in decimal, hexadecimal and octal. For | |
45 example, when the cursor is on a 'R': | |
46 <R> 82, Hex 52, Octal 122 ~ | |
47 When the character is a non-standard ASCII character, | |
48 but printable according to the 'isprint' option, the | |
49 non-printable version is also given. When the | |
50 character is larger than 127, the <M-x> form is also | |
51 printed. For example: | |
52 <~A> <M-^A> 129, Hex 81, Octal 201 ~ | |
53 <p> <|~> <M-~> 254, Hex fe, Octal 376 ~ | |
54 (where <p> is a special character) | |
55 The <Nul> character in a file is stored internally as | |
56 <NL>, but it will be shown as: | |
57 <^@> 0, Hex 00, Octal 000 ~ | |
714 | 58 If the character has composing characters these are |
59 also shown. The value of 'maxcombine' doesn't matter. | |
7 | 60 Mnemonic: Get Ascii value. {not in Vi} |
61 | |
62 *g8* | |
63 g8 Print the hex values of the bytes used in the | |
64 character under the cursor, assuming it is in |UTF-8| | |
714 | 65 encoding. This also shows composing characters. The |
66 value of 'maxcombine' doesn't matter. | |
67 Example of a character with two composing characters: | |
7 | 68 e0 b8 81 + e0 b8 b9 + e0 b9 89 ~ |
777 | 69 {not in Vi} {only when compiled with the |+multi_byte| |
70 feature} | |
71 | |
72 *8g8* | |
73 8g8 Find an illegal UTF-8 byte sequence at or after the | |
74 cursor. This works in two situations: | |
75 1. when 'encoding' is any 8-bit encoding | |
76 2. when 'encoding' is "utf-8" and 'fileencoding' is | |
77 any 8-bit encoding | |
78 Thus it can be used when editing a file that was | |
79 supposed to be UTF-8 but was read as if it is an 8-bit | |
80 encoding because it contains illegal bytes. | |
81 Does not wrap around the end of the file. | |
82 Note that when the cursor is on an illegal byte or the | |
83 cursor is halfway a multi-byte character the command | |
84 won't move the cursor. | |
85 {not in Vi} {only when compiled with the |+multi_byte| | |
86 feature} | |
7 | 87 |
843 | 88 *:p* *:pr* *:print* *E749* |
169 | 89 :[range]p[rint] [flags] |
90 Print [range] lines (default current line). | |
7 | 91 Note: If you are looking for a way to print your text |
169 | 92 on paper see |:hardcopy|. In the GUI you can use the |
93 File.Print menu entry. | |
94 See |ex-flags| for [flags]. | |
7 | 95 |
169 | 96 :[range]p[rint] {count} [flags] |
7 | 97 Print {count} lines, starting with [range] (default |
98 current line |cmdline-ranges|). | |
169 | 99 See |ex-flags| for [flags]. |
7 | 100 |
101 *:P* *:Print* | |
169 | 102 :[range]P[rint] [count] [flags] |
7 | 103 Just as ":print". Was apparently added to Vi for |
104 people that keep the shift key pressed too long... | |
169 | 105 See |ex-flags| for [flags]. |
7 | 106 |
107 *:l* *:list* | |
169 | 108 :[range]l[ist] [count] [flags] |
7 | 109 Same as :print, but display unprintable characters |
169 | 110 with '^' and put $ after the line. |
111 See |ex-flags| for [flags]. | |
7 | 112 |
113 *:nu* *:number* | |
169 | 114 :[range]nu[mber] [count] [flags] |
7 | 115 Same as :print, but precede each line with its line |
677 | 116 number. (See also 'highlight' and 'numberwidth' |
117 option). | |
169 | 118 See |ex-flags| for [flags]. |
7 | 119 |
120 *:#* | |
169 | 121 :[range]# [count] [flags] |
122 synonym for :number. | |
7 | 123 |
1125 | 124 *:#!* |
125 :#!{anything} Ignored, so that you can start a Vim script with: > | |
1624 | 126 #!vim -S |
1125 | 127 echo "this is a Vim script" |
128 quit | |
129 < | |
7 | 130 *:z* *E144* |
131 :{range}z[+-^.=]{count} Display several lines of text surrounding the line | |
132 specified with {range}, or around the current line | |
133 if there is no {range}. If there is a {count}, that's | |
164 | 134 how many lines you'll see; if there is only one window |
135 then the 'window' option is used, otherwise the | |
136 current window size is used. | |
7 | 137 |
138 :z can be used either alone or followed by any of | |
139 several punctuation marks. These have the following | |
140 effect: | |
141 | |
142 mark first line last line new location ~ | |
143 ---- ---------- --------- ------------ | |
144 + current line 1 scr forward 1 scr forward | |
145 - 1 scr back current line current line | |
146 ^ 2 scr back 1 scr back 1 scr back | |
159 | 147 . 1/2 scr back 1/2 scr fwd 1/2 scr fwd |
148 = 1/2 scr back 1/2 scr fwd current line | |
7 | 149 |
150 Specifying no mark at all is the same as "+". | |
151 If the mark is "=", a line of dashes is printed | |
152 around the current line. | |
153 | |
154 :{range}z#[+-^.=]{count} *:z#* | |
155 Like ":z", but number the lines. | |
156 {not in all versions of Vi, not with these arguments} | |
157 | |
158 *:=* | |
169 | 159 := [flags] Print the last line number. |
160 See |ex-flags| for [flags]. | |
7 | 161 |
169 | 162 :{range}= [flags] Prints the last line number in {range}. For example, |
7 | 163 this prints the current line number: > |
164 :.= | |
169 | 165 < See |ex-flags| for [flags]. |
7 | 166 |
167 :norm[al][!] {commands} *:norm* *:normal* | |
168 Execute Normal mode commands {commands}. This makes | |
169 it possible to execute Normal mode commands typed on | |
170 the command-line. {commands} is executed like it is | |
171 typed. For undo all commands are undone together. | |
1125 | 172 Execution stops when an error is encountered. |
7 | 173 If the [!] is given, mappings will not be used. |
174 {commands} should be a complete command. If | |
175 {commands} does not finish a command, the last one | |
176 will be aborted as if <Esc> or <C-C> was typed. | |
177 The display isn't updated while ":normal" is busy. | |
178 This implies that an insert command must be completed | |
179 (to start Insert mode, see |:startinsert|). A ":" | |
161 | 180 command must be completed as well. And you can't use |
181 "Q" or "gQ" to start Ex mode. | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1989
diff
changeset
|
182 {commands} cannot start with a space. Put a count of |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1989
diff
changeset
|
183 1 (one) before it, "1 " is one space. |
7 | 184 The 'insertmode' option is ignored for {commands}. |
185 This command cannot be followed by another command, | |
186 since any '|' is considered part of the command. | |
187 This command can be used recursively, but the depth is | |
188 limited by 'maxmapdepth'. | |
189 When this command is called from a non-remappable | |
190 mapping |:noremap|, the argument can be mapped anyway. | |
191 An alternative is to use |:execute|, which uses an | |
192 expression as argument. This allows the use of | |
193 printable characters. Example: > | |
194 :exe "normal \<c-w>\<c-w>" | |
195 < {not in Vi, of course} | |
196 {not available when the |+ex_extra| feature was | |
197 disabled at compile time} | |
198 | |
199 :{range}norm[al][!] {commands} *:normal-range* | |
200 Execute Normal mode commands {commands} for each line | |
201 in the {range}. Before executing the {commands}, the | |
202 cursor is positioned in the first column of the range, | |
203 for each line. Otherwise it's the same as the | |
204 ":normal" command without a range. | |
205 {not in Vi} | |
206 Not available when |+ex_extra| feature was disabled at | |
207 compile time. | |
208 | |
209 *:sh* *:shell* *E371* | |
210 :sh[ell] This command starts a shell. When the shell exits | |
211 (after the "exit" command) you return to Vim. The | |
212 name for the shell command comes from 'shell' option. | |
213 *E360* | |
214 Note: This doesn't work when Vim on the Amiga was | |
215 started in QuickFix mode from a compiler, because the | |
216 compiler will have set stdin to a non-interactive | |
217 mode. | |
218 | |
219 *:!cmd* *:!* *E34* | |
220 :!{cmd} Execute {cmd} with the shell. See also the 'shell' | |
221 and 'shelltype' option. | |
222 Any '!' in {cmd} is replaced with the previous | |
223 external command (see also 'cpoptions'). But not when | |
224 there is a backslash before the '!', then that | |
225 backslash is removed. Example: ":!ls" followed by | |
226 ":!echo ! \! \\!" executes "echo ls ! \!". | |
227 After the command has been executed, the timestamp of | |
228 the current file is checked |timestamp|. | |
1624 | 229 A '|' in {cmd} is passed to the shell, you cannot use |
230 it to append a Vim command. See |:bar|. | |
7 | 231 A newline character ends {cmd}, what follows is |
232 interpreted as a following ":" command. However, if | |
233 there is a backslash before the newline it is removed | |
234 and {cmd} continues. It doesn't matter how many | |
235 backslashes are before the newline, only one is | |
236 removed. | |
237 On Unix the command normally runs in a non-interactive | |
238 shell. If you want an interactive shell to be used | |
239 (to use aliases) set 'shellcmdflag' to "-ic". | |
240 For Win32 also see |:!start|. | |
241 Vim redraws the screen after the command is finished, | |
242 because it may have printed any text. This requires a | |
243 hit-enter prompt, so that you can read any messages. | |
244 To avoid this use: > | |
245 :silent !{cmd} | |
246 < The screen is not redrawn then, thus you have to use | |
247 CTRL-L or ":redraw!" if the command did display | |
248 something. | |
249 Also see |shell-window|. | |
250 | |
251 *:!!* | |
252 :!! Repeat last ":!{cmd}". | |
253 | |
254 *:ve* *:version* | |
255 :ve[rsion] Print the version number of the editor. If the | |
256 compiler used understands "__DATE__" the compilation | |
257 date is mentioned. Otherwise a fixed release-date is | |
258 shown. | |
259 The following lines contain information about which | |
260 features were enabled when Vim was compiled. When | |
261 there is a preceding '+', the feature is included, | |
262 when there is a '-' it is excluded. To change this, | |
263 you have to edit feature.h and recompile Vim. | |
264 To check for this in an expression, see |has()|. | |
265 Here is an overview of the features. | |
266 The first column shows the smallest version in which | |
267 they are included: | |
268 T tiny | |
269 S small | |
270 N normal | |
271 B big | |
272 H huge | |
273 m manually enabled or depends on other features | |
274 (none) system dependent | |
275 Thus if a feature is marked with "N", it is included | |
276 in the normal, big and huge versions of Vim. | |
277 | |
278 *+feature-list* | |
279 *+ARP* Amiga only: ARP support included | |
280 B *+arabic* |Arabic| language support | |
281 N *+autocmd* |:autocmd|, automatic commands | |
191 | 282 m *+balloon_eval* |balloon-eval| support. Included when compiling with |
283 supported GUI (Motif, GTK, GUI) and either | |
284 Netbeans/Sun Workshop integration or |+eval| feature. | |
7 | 285 N *+browse* |:browse| command |
286 N *+builtin_terms* some terminals builtin |builtin-terms| | |
287 B *++builtin_terms* maximal terminals builtin |builtin-terms| | |
288 N *+byte_offset* support for 'o' flag in 'statusline' option, "go" | |
289 and ":goto" commands. | |
290 N *+cindent* |'cindent'|, C indenting | |
291 N *+clientserver* Unix and Win32: Remote invocation |clientserver| | |
292 *+clipboard* |clipboard| support | |
293 N *+cmdline_compl* command line completion |cmdline-completion| | |
294 N *+cmdline_hist* command line history |cmdline-history| | |
295 N *+cmdline_info* |'showcmd'| and |'ruler'| | |
296 N *+comments* |'comments'| support | |
297 N *+cryptv* encryption support |encryption| | |
298 B *+cscope* |cscope| support | |
500 | 299 m *+cursorshape* |termcap-cursor-shape| support |
300 m *+debug* Compiled for debugging. | |
7 | 301 N *+dialog_gui* Support for |:confirm| with GUI dialog. |
302 N *+dialog_con* Support for |:confirm| with console dialog. | |
303 N *+dialog_con_gui* Support for |:confirm| with GUI and console dialog. | |
304 N *+diff* |vimdiff| and 'diff' | |
305 N *+digraphs* |digraphs| *E196* | |
306 *+dnd* Support for DnD into the "~ register |quote_~|. | |
307 B *+emacs_tags* |emacs-tags| files | |
308 N *+eval* expression evaluation |eval.txt| | |
309 N *+ex_extra* Vim's extra Ex commands: |:center|, |:left|, | |
310 |:normal|, |:retab| and |:right| | |
311 N *+extra_search* |'hlsearch'| and |'incsearch'| options. | |
312 B *+farsi* |farsi| language | |
313 N *+file_in_path* |gf|, |CTRL-W_f| and |<cfile>| | |
314 N *+find_in_path* include file searches: |[I|, |:isearch|, | |
315 |CTRL-W_CTRL-I|, |:checkpath|, etc. | |
316 N *+folding* |folding| | |
317 *+footer* |gui-footer| | |
318 *+fork* Unix only: |fork| shell commands | |
1624 | 319 *+float* Floating point support |
7 | 320 N *+gettext* message translations |multi-lang| |
321 *+GUI_Athena* Unix only: Athena |GUI| | |
322 *+GUI_neXtaw* Unix only: neXtaw |GUI| | |
323 *+GUI_GTK* Unix only: GTK+ |GUI| | |
324 *+GUI_Motif* Unix only: Motif |GUI| | |
325 *+GUI_Photon* QNX only: Photon |GUI| | |
326 m *+hangul_input* Hangul input support |hangul| | |
557 | 327 *+iconv* Compiled with the |iconv()| function |
328 *+iconv/dyn* Likewise |iconv-dynamic| |/dyn| | |
7 | 329 N *+insert_expand* |insert_expand| Insert mode completion |
330 N *+jumplist* |jumplist| | |
331 B *+keymap* |'keymap'| | |
332 B *+langmap* |'langmap'| | |
333 N *+libcall* |libcall()| | |
334 N *+linebreak* |'linebreak'|, |'breakat'| and |'showbreak'| | |
335 N *+lispindent* |'lisp'| | |
336 N *+listcmds* Vim commands for the list of buffers |buffer-hidden| | |
337 and argument list |:argdelete| | |
338 N *+localmap* Support for mappings local to a buffer |:map-local| | |
339 N *+menu* |:menu| | |
340 N *+mksession* |:mksession| | |
341 N *+modify_fname* |filename-modifiers| | |
342 N *+mouse* Mouse handling |mouse-using| | |
343 N *+mouseshape* |'mouseshape'| | |
344 B *+mouse_dec* Unix only: Dec terminal mouse handling |dec-mouse| | |
345 N *+mouse_gpm* Unix only: Linux console mouse handling |gpm-mouse| | |
346 B *+mouse_netterm* Unix only: netterm mouse handling |netterm-mouse| | |
347 N *+mouse_pterm* QNX only: pterm mouse handling |qnx-terminal| | |
1624 | 348 N *+mouse_sysmouse* Unix only: *BSD console mouse handling |sysmouse| |
7 | 349 N *+mouse_xterm* Unix only: xterm mouse handling |xterm-mouse| |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1989
diff
changeset
|
350 B *+multi_byte* 16 and 32 bit characters |multibyte| |
7 | 351 *+multi_byte_ime* Win32 input method for multibyte chars |multibyte-ime| |
352 N *+multi_lang* non-English language support |multi-lang| | |
14 | 353 m *+mzscheme* Mzscheme interface |mzscheme| |
625 | 354 m *+mzscheme/dyn* Mzscheme interface |mzscheme-dynamic| |/dyn| |
7 | 355 m *+netbeans_intg* |netbeans| |
356 m *+ole* Win32 GUI only: |ole-interface| | |
357 *+osfiletype* Support for the 'osfiletype' option and filetype | |
358 checking in automatic commands. |autocmd-osfiletypes| | |
359 N *+path_extra* Up/downwards search in 'path' and 'tags' | |
557 | 360 m *+perl* Perl interface |perl| |
361 m *+perl/dyn* Perl interface |perl-dynamic| |/dyn| | |
2214
f8222d1f9a73
Included patch for persistent undo. Lots of changes and added test.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
362 H *+persistent_undo* Persistent undo |undo-persistence| |
7 | 363 *+postscript* |:hardcopy| writes a PostScript file |
364 N *+printer* |:hardcopy| command | |
179 | 365 H *+profile* |:profile| command |
557 | 366 m *+python* Python interface |python| |
367 m *+python/dyn* Python interface |python-dynamic| |/dyn| | |
7 | 368 N *+quickfix* |:make| and |quickfix| commands |
1624 | 369 N *+reltime* |reltime()| function, 'hlsearch'/'incsearch' timeout, |
370 'redrawtime' option | |
7 | 371 B *+rightleft* Right to left typing |'rightleft'| |
557 | 372 m *+ruby* Ruby interface |ruby| |
373 m *+ruby/dyn* Ruby interface |ruby-dynamic| |/dyn| | |
7 | 374 N *+scrollbind* |'scrollbind'| |
375 B *+signs* |:sign| | |
376 N *+smartindent* |'smartindent'| | |
377 m *+sniff* SniFF interface |sniff| | |
1989 | 378 N *+startuptime* |--startuptime| argument |
7 | 379 N *+statusline* Options 'statusline', 'rulerformat' and special |
380 formats of 'titlestring' and 'iconstring' | |
381 m *+sun_workshop* |workshop| | |
382 N *+syntax* Syntax highlighting |syntax| | |
383 *+system()* Unix only: opposite of |+fork| | |
384 N *+tag_binary* binary searching in tags file |tag-binary-search| | |
385 N *+tag_old_static* old method for static tags |tag-old-static| | |
386 m *+tag_any_white* any white space allowed in tags file |tag-any-white| | |
557 | 387 m *+tcl* Tcl interface |tcl| |
388 m *+tcl/dyn* Tcl interface |tcl-dynamic| |/dyn| | |
7 | 389 *+terminfo* uses |terminfo| instead of termcap |
390 N *+termresponse* support for |t_RV| and |v:termresponse| | |
391 N *+textobjects* |text-objects| selection | |
392 *+tgetent* non-Unix only: able to use external termcap | |
1125 | 393 N *+title* Setting the window 'title' and 'icon' |
7 | 394 N *+toolbar* |gui-toolbar| |
395 N *+user_commands* User-defined commands. |user-commands| | |
396 N *+viminfo* |'viminfo'| | |
397 N *+vertsplit* Vertically split windows |:vsplit| | |
398 N *+virtualedit* |'virtualedit'| | |
399 S *+visual* Visual mode |Visual-mode| | |
400 N *+visualextra* extra Visual mode commands |blockwise-operators| | |
401 N *+vreplace* |gR| and |gr| | |
402 N *+wildignore* |'wildignore'| | |
403 N *+wildmenu* |'wildmenu'| | |
404 S *+windows* more than one window | |
405 m *+writebackup* |'writebackup'| is default on | |
406 m *+xim* X input method |xim| | |
407 *+xfontset* X fontset support |xfontset| | |
408 *+xsmp* XSMP (X session management) support | |
409 *+xsmp_interact* interactive XSMP (X session management) support | |
410 N *+xterm_clipboard* Unix only: xterm clipboard handling | |
411 m *+xterm_save* save and restore xterm screen |xterm-screens| | |
412 N *+X11* Unix only: can restore window title |X11| | |
413 | |
414 */dyn* *E370* *E448* | |
415 To some of the features "/dyn" is added when the | |
416 feature is only available when the related library can | |
417 be dynamically loaded. | |
418 | |
419 :ve[rsion] {nr} Is now ignored. This was previously used to check the | |
420 version number of a .vimrc file. It was removed, | |
421 because you can now use the ":if" command for | |
422 version-dependent behavior. {not in Vi} | |
423 | |
424 *:redi* *:redir* | |
425 :redi[r][!] > {file} Redirect messages to file {file}. The messages which | |
426 are the output of commands are written to that file, | |
427 until redirection ends. The messages are also still | |
428 shown on the screen. When [!] is included, an | |
429 existing file is overwritten. When [!] is omitted, | |
430 and {file} exists, this command fails. | |
431 Only one ":redir" can be active at a time. Calls to | |
432 ":redir" will close any active redirection before | |
433 starting redirection to the new target. | |
434 To stop the messages and commands from being echoed to | |
435 the screen, put the commands in a function and call it | |
436 with ":silent call Function()". | |
294 | 437 An alternative is to use the 'verbosefile' option, |
438 this can be used in combination with ":redir". | |
7 | 439 {not in Vi} |
440 | |
441 :redi[r] >> {file} Redirect messages to file {file}. Append if {file} | |
442 already exists. {not in Vi} | |
443 | |
1624 | 444 :redi[r] @{a-zA-Z} |
298 | 445 :redi[r] @{a-zA-Z}> Redirect messages to register {a-z}. Append to the |
7 | 446 contents of the register if its name is given |
1624 | 447 uppercase {A-Z}. The ">" after the register name is |
448 optional. {not in Vi} | |
271 | 449 :redi[r] @{a-z}>> Append messages to register {a-z}. {not in Vi} |
7 | 450 |
1125 | 451 :redi[r] @*> |
452 :redi[r] @+> Redirect messages to the selection or clipboard. For | |
453 backward compatibility, the ">" after the register | |
454 name can be omitted. See |quotestar| and |quoteplus|. | |
455 {not in Vi} | |
456 :redi[r] @*>> | |
457 :redi[r] @+>> Append messages to the selection or clipboard. | |
458 {not in Vi} | |
7 | 459 |
298 | 460 :redi[r] @"> Redirect messages to the unnamed register. For |
461 backward compatibility, the ">" after the register | |
462 name can be omitted. {not in Vi} | |
271 | 463 :redi[r] @">> Append messages to the unnamed register. {not in Vi} |
7 | 464 |
169 | 465 :redi[r] => {var} Redirect messages to a variable. If the variable |
466 doesn't exist, then it is created. If the variable | |
467 exists, then it is initialized to an empty string. | |
1125 | 468 The variable will remain empty until redirection ends. |
169 | 469 Only string variables can be used. After the |
470 redirection starts, if the variable is removed or | |
471 locked or the variable type is changed, then further | |
472 command output messages will cause errors. {not in Vi} | |
473 | |
474 :redi[r] =>> {var} Append messages to an existing variable. Only string | |
475 variables can be used. {not in Vi} | |
476 | |
7 | 477 :redi[r] END End redirecting messages. {not in Vi} |
478 | |
479 *:sil* *:silent* | |
480 :sil[ent][!] {command} Execute {command} silently. Normal messages will not | |
481 be given or added to the message history. | |
482 When [!] is added, error messages will also be | |
483 skipped, and commands and mappings will not be aborted | |
484 when an error is detected. |v:errmsg| is still set. | |
485 When [!] is not used, an error message will cause | |
486 further messages to be displayed normally. | |
487 Redirection, started with |:redir|, will continue as | |
488 usual, although there might be small differences. | |
489 This will allow redirecting the output of a command | |
490 without seeing it on the screen. Example: > | |
491 :redir >/tmp/foobar | |
492 :silent g/Aap/p | |
493 :redir END | |
494 < To execute a Normal mode command silently, use the | |
495 |:normal| command. For example, to search for a | |
496 string without messages: > | |
497 :silent exe "normal /path\<CR>" | |
498 < ":silent!" is useful to execute a command that may | |
499 fail, but the failure is to be ignored. Example: > | |
500 :let v:errmsg = "" | |
501 :silent! /^begin | |
502 :if v:errmsg != "" | |
503 : ... pattern was not found | |
504 < ":silent" will also avoid the hit-enter prompt. When | |
505 using this for an external command, this may cause the | |
506 screen to be messed up. Use |CTRL-L| to clean it up | |
507 then. | |
508 ":silent menu ..." defines a menu that will not echo a | |
509 Command-line command. The command will still produce | |
510 messages though. Use ":silent" in the command itself | |
511 to avoid that: ":silent menu .... :silent command". | |
512 | |
1926 | 513 *:uns* *:unsilent* |
514 :uns[ilent] {command} Execute {command} not silently. Only makes a | |
515 difference when |:silent| was used to get to this | |
516 command. | |
517 Use this for giving a message even when |:silent| was | |
518 used. In this example |:silent| is used to avoid the | |
519 message about reading the file and |:unsilent| to be | |
520 able to list the first line of each file. > | |
521 :silent argdo unsilent echo expand('%') . ": " . getline(1) | |
522 < | |
523 | |
7 | 524 *:verb* *:verbose* |
525 :[count]verb[ose] {command} | |
526 Execute {command} with 'verbose' set to [count]. If | |
8 | 527 [count] is omitted one is used. ":0verbose" can be |
528 used to set 'verbose' to zero. | |
7 | 529 The additional use of ":silent" makes messages |
530 generated but not displayed. | |
531 The combination of ":silent" and ":verbose" can be | |
532 used to generate messages and check them with | |
533 |v:statusmsg| and friends. For example: > | |
534 :let v:statusmsg = "" | |
535 :silent verbose runtime foobar.vim | |
536 :if v:statusmsg != "" | |
537 : " foobar.vim could not be found | |
538 :endif | |
539 < When concatenating another command, the ":verbose" | |
540 only applies to the first one: > | |
541 :4verbose set verbose | set verbose | |
542 < verbose=4 ~ | |
543 verbose=0 ~ | |
294 | 544 For logging verbose messages in a file use the |
545 'verbosefile' option. | |
7 | 546 |
484 | 547 *:verbose-cmd* |
548 When 'verbose' is non-zero, listing the value of a Vim option or a key map or | |
502 | 549 an abbreviation or a user-defined function or a command or a highlight group |
550 or an autocommand will also display where it was last defined. If it was | |
551 defined manually then there will be no "Last set" message. When it was | |
552 defined while executing a function, user command or autocommand, the script in | |
553 which it was defined is reported. | |
484 | 554 {not available when compiled without the +eval feature} |
555 | |
7 | 556 *K* |
557 K Run a program to lookup the keyword under the | |
558 cursor. The name of the program is given with the | |
559 'keywordprg' (kp) option (default is "man"). The | |
560 keyword is formed of letters, numbers and the | |
561 characters in 'iskeyword'. The keyword under or | |
562 right of the cursor is used. The same can be done | |
563 with the command > | |
564 :!{program} {keyword} | |
565 < There is an example of a program to use in the tools | |
566 directory of Vim. It is called 'ref' and does a | |
567 simple spelling check. | |
568 Special cases: | |
569 - If 'keywordprg' is empty, the ":help" command is | |
570 used. It's a good idea to include more characters | |
571 in 'iskeyword' then, to be able to find more help. | |
572 - When 'keywordprg' is equal to "man", a count before | |
573 "K" is inserted after the "man" command and before | |
574 the keyword. For example, using "2K" while the | |
575 cursor is on "mkdir", results in: > | |
576 !man 2 mkdir | |
577 < - When 'keywordprg' is equal to "man -s", a count | |
578 before "K" is inserted after the "-s". If there is | |
579 no count, the "-s" is removed. | |
580 {not in Vi} | |
581 | |
582 *v_K* | |
583 {Visual}K Like "K", but use the visually highlighted text for | |
584 the keyword. Only works when the highlighted text is | |
585 not more than one line. {not in Vi} | |
586 | |
587 [N]gs *gs* *:sl* *:sleep* | |
588 :[N]sl[eep] [N] [m] Do nothing for [N] seconds. When [m] is included, | |
237 | 589 sleep for [N] milliseconds. The count for "gs" always |
7 | 590 uses seconds. The default is one second. > |
591 :sleep "sleep for one second | |
592 :5sleep "sleep for five seconds | |
593 :sleep 100m "sleep for a hundred milliseconds | |
594 10gs "sleep for ten seconds | |
595 < Can be interrupted with CTRL-C (CTRL-Break on MS-DOS). | |
140 | 596 "gs" stands for "goto sleep". |
597 While sleeping the cursor is positioned in the text, | |
598 if at a visible position. {not in Vi} | |
7 | 599 |
600 *g_CTRL-A* | |
601 g CTRL-A Only when Vim was compiled with MEM_PROFILING defined | |
602 (which is very rare): print memory usage statistics. | |
603 Only useful for debugging Vim. | |
604 | |
605 ============================================================================== | |
606 2. Online help *online-help* | |
607 | |
608 *help* *<Help>* *:h* *:help* *<F1>* *i_<F1>* *i_<Help>* | |
609 <Help> or | |
610 :h[elp] Open a window and display the help file in read-only | |
611 mode. If there is a help window open already, use | |
612 that one. Otherwise, if the current window uses the | |
613 full width of the screen or is at least 80 characters | |
614 wide, the help window will appear just above the | |
615 current window. Otherwise the new window is put at | |
616 the very top. | |
617 The 'helplang' option is used to select a language, if | |
618 the main help file is available in several languages. | |
619 {not in Vi} | |
620 | |
621 *{subject}* *E149* *E661* | |
622 :h[elp] {subject} Like ":help", additionally jump to the tag {subject}. | |
623 {subject} can include wildcards like "*", "?" and | |
624 "[a-z]": | |
625 :help z? jump to help for any "z" command | |
626 :help z. jump to the help for "z." | |
627 If there is no full match for the pattern, or there | |
628 are several matches, the "best" match will be used. | |
629 A sophisticated algorithm is used to decide which | |
630 match is better than another one. These items are | |
631 considered in the computation: | |
632 - A match with same case is much better than a match | |
633 with different case. | |
634 - A match that starts after a non-alphanumeric | |
635 character is better than a match in the middle of a | |
636 word. | |
637 - A match at or near the beginning of the tag is | |
638 better than a match further on. | |
639 - The more alphanumeric characters match, the better. | |
640 - The shorter the length of the match, the better. | |
641 | |
642 The 'helplang' option is used to select a language, if | |
643 the {subject} is available in several languages. | |
644 To find a tag in a specific language, append "@ab", | |
645 where "ab" is the two-letter language code. See | |
646 |help-translated|. | |
647 | |
648 Note that the longer the {subject} you give, the less | |
649 matches will be found. You can get an idea how this | |
650 all works by using commandline completion (type CTRL-D | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1989
diff
changeset
|
651 after ":help subject" |c_CTRL-D|). |
7 | 652 If there are several matches, you can have them listed |
653 by hitting CTRL-D. Example: > | |
654 :help cont<Ctrl-D> | |
655 < To use a regexp |pattern|, first do ":help" and then | |
656 use ":tag {pattern}" in the help window. The | |
657 ":tnext" command can then be used to jump to other | |
658 matches, "tselect" to list matches and choose one. > | |
659 :help index| :tse z. | |
1698 | 660 < When there is no argument you will see matches for |
661 "help", to avoid listing all possible matches (that | |
662 would be very slow). | |
663 The number of matches displayed is limited to 300. | |
664 | |
665 This command can be followed by '|' and another | |
7 | 666 command, but you don't need to escape the '|' inside a |
667 help command. So these both work: > | |
668 :help | | |
669 :help k| only | |
670 < Note that a space before the '|' is seen as part of | |
671 the ":help" argument. | |
672 You can also use <LF> or <CR> to separate the help | |
673 command from a following command. You need to type | |
674 CTRL-V first to insert the <LF> or <CR>. Example: > | |
675 :help so<C-V><CR>only | |
676 < {not in Vi} | |
677 | |
678 :h[elp]! [subject] Like ":help", but in non-English help files prefer to | |
679 find a tag in a file with the same language as the | |
680 current file. See |help-translated|. | |
681 | |
682 *:helpg* *:helpgrep* | |
9 | 683 :helpg[rep] {pattern}[@xx] |
7 | 684 Search all help text files and make a list of lines |
685 in which {pattern} matches. Jumps to the first match. | |
9 | 686 The optional [@xx] specifies that only matches in the |
687 "xx" language are to be found. | |
7 | 688 You can navigate through the matches with the |
689 |quickfix| commands, e.g., |:cnext| to jump to the | |
690 next one. Or use |:cwindow| to get the list of | |
691 matches in the quickfix window. | |
692 {pattern} is used as a Vim regexp |pattern|. | |
693 'ignorecase' is not used, add "\c" to ignore case. | |
694 Example for case sensitive search: > | |
695 :helpgrep Uganda | |
696 < Example for case ignoring search: > | |
697 :helpgrep uganda\c | |
9 | 698 < Example for searching in French help: > |
699 :helpgrep backspace@fr | |
1624 | 700 < The pattern does not support line breaks, it must |
701 match within one line. You can use |:grep| instead, | |
702 but then you need to get the list of help files in a | |
703 complicated way. | |
704 Cannot be followed by another command, everything is | |
7 | 705 used as part of the pattern. But you can use |
706 |:execute| when needed. | |
1624 | 707 Compressed help files will not be searched (Fedora |
7 | 708 compresses the help files). |
709 {not in Vi} | |
710 | |
659 | 711 *:lh* *:lhelpgrep* |
712 :lh[elpgrep] {pattern}[@xx] | |
713 Same as ":helpgrep", except the location list is used | |
714 instead of the quickfix list. If the help window is | |
715 already opened, then the location list for that window | |
716 is used. Otherwise, a new help window is opened and | |
717 the location list for that window is set. The | |
718 location list for the current window is not changed. | |
719 | |
40 | 720 *:exu* *:exusage* |
721 :exu[sage] Show help on Ex commands. Added to simulate the Nvi | |
722 command. {not in Vi} | |
723 | |
724 *:viu* *:viusage* | |
725 :viu[sage] Show help on Normal mode commands. Added to simulate | |
726 the Nvi command. {not in Vi} | |
7 | 727 |
728 When no argument is given to |:help| the file given with the 'helpfile' option | |
729 will be opened. Otherwise the specified tag is searched for in all "doc/tags" | |
730 files in the directories specified in the 'runtimepath' option. | |
731 | |
732 The initial height of the help window can be set with the 'helpheight' option | |
733 (default 20). | |
734 | |
735 Jump to specific subjects by using tags. This can be done in two ways: | |
736 - Use the "CTRL-]" command while standing on the name of a command or option. | |
737 This only works when the tag is a keyword. "<C-Leftmouse>" and | |
738 "g<LeftMouse>" work just like "CTRL-]". | |
739 - use the ":ta {subject}" command. This also works with non-keyword | |
740 characters. | |
741 | |
742 Use CTRL-T or CTRL-O to jump back. | |
743 Use ":q" to close the help window. | |
744 | |
745 If there are several matches for an item you are looking for, this is how you | |
746 can jump to each one of them: | |
747 1. Open a help window | |
748 2. Use the ":tag" command with a slash prepended to the tag. E.g.: > | |
749 :tag /min | |
750 3. Use ":tnext" to jump to the next matching tag. | |
751 | |
752 It is possible to add help files for plugins and other items. You don't need | |
753 to change the distributed help files for that. See |add-local-help|. | |
754 | |
755 To write a local help file, see |write-local-help|. | |
756 | |
757 Note that the title lines from the local help files are automagically added to | |
758 the "LOCAL ADDITIONS" section in the "help.txt" help file |local-additions|. | |
759 This is done when viewing the file in Vim, the file itself is not changed. It | |
760 is done by going through all help files and obtaining the first line of each | |
761 file. The files in $VIMRUNTIME/doc are skipped. | |
762 | |
763 *help-xterm-window* | |
764 If you want to have the help in another xterm window, you could use this | |
765 command: > | |
766 :!xterm -e vim +help & | |
767 < | |
768 | |
769 *:helpfind* *:helpf* | |
770 :helpf[ind] Like |:help|, but use a dialog to enter the argument. | |
771 Only for backwards compatibility. It now executes the | |
772 ToolBar.FindHelp menu entry instead of using a builtin | |
773 dialog. {only when compiled with |+GUI_GTK|} | |
774 < {not in Vi} | |
775 | |
776 *:helpt* *:helptags* | |
777 *E154* *E150* *E151* *E152* *E153* *E670* | |
1502 | 778 :helpt[ags] [++t] {dir} |
779 Generate the help tags file(s) for directory {dir}. | |
7 | 780 All "*.txt" and "*.??x" files in the directory are |
781 scanned for a help tag definition in between stars. | |
782 The "*.??x" files are for translated docs, they | |
783 generate the "tags-??" file, see |help-translated|. | |
784 The generated tags files are sorted. | |
785 When there are duplicates an error message is given. | |
786 An existing tags file is silently overwritten. | |
1502 | 787 The optional "++t" argument forces adding the |
788 "help-tags" tag. This is also done when the {dir} is | |
789 equal to $VIMRUNTIME/doc. | |
7 | 790 To rebuild the help tags in the runtime directory |
791 (requires write permission there): > | |
792 :helptags $VIMRUNTIME/doc | |
793 < {not in Vi} | |
794 | |
795 | |
796 TRANSLATED HELP *help-translated* | |
797 | |
798 It is possible to add translated help files, next to the original English help | |
799 files. Vim will search for all help in "doc" directories in 'runtimepath'. | |
800 This is only available when compiled with the |+multi_lang| feature. | |
801 | |
798 | 802 At this moment translations are available for: |
803 Chinese - multiple authors | |
804 French - translated by David Blanchet | |
805 Italian - translated by Antonio Colombo | |
806 | 806 Polish - translated by Mikolaj Machowski |
798 | 807 Russian - translated by Vassily Ragosin |
808 See the Vim website to find them: http://www.vim.org/translations.php | |
809 | |
7 | 810 A set of translated help files consists of these files: |
811 | |
812 help.abx | |
813 howto.abx | |
814 ... | |
815 tags-ab | |
816 | |
817 "ab" is the two-letter language code. Thus for Italian the names are: | |
818 | |
819 help.itx | |
820 howto.itx | |
821 ... | |
822 tags-it | |
823 | |
824 The 'helplang' option can be set to the preferred language(s). The default is | |
825 set according to the environment. Vim will first try to find a matching tag | |
826 in the preferred language(s). English is used when it cannot be found. | |
827 | |
828 To find a tag in a specific language, append "@ab" to a tag, where "ab" is the | |
829 two-letter language code. Example: > | |
830 :he user-manual@it | |
831 :he user-manual@en | |
832 The first one finds the Italian user manual, even when 'helplang' is empty. | |
833 The second one finds the English user manual, even when 'helplang' is set to | |
834 "it". | |
835 | |
836 When using command-line completion for the ":help" command, the "@en" | |
1668 | 837 extension is only shown when a tag exists for multiple languages. When the |
7 | 838 tag only exists for English "@en" is omitted. |
839 | |
840 When using |CTRL-]| or ":help!" in a non-English help file Vim will try to | |
841 find the tag in the same language. If not found then 'helplang' will be used | |
842 to select a language. | |
843 | |
844 Help files must use latin1 or utf-8 encoding. Vim assumes the encoding is | |
845 utf-8 when finding non-ASCII characters in the first line. Thus you must | |
846 translate the header with "For Vim version". | |
847 | |
848 The same encoding must be used for the help files of one language in one | |
849 directory. You can use a different encoding for different languages and use | |
850 a different encoding for help files of the same language but in a different | |
851 directory. | |
852 | |
853 Hints for translators: | |
854 - Do not translate the tags. This makes it possible to use 'helplang' to | |
855 specify the preferred language. You may add new tags in your language. | |
856 - When you do not translate a part of a file, add tags to the English version, | |
857 using the "tag@en" notation. | |
858 - Make a package with all the files and the tags file available for download. | |
859 Users can drop it in one of the "doc" directories and start use it. | |
860 Report this to Bram, so that he can add a link on www.vim.org. | |
861 - Use the |:helptags| command to generate the tags files. It will find all | |
862 languages in the specified directory. | |
863 | |
864 ============================================================================== | |
840 | 865 3. Using Vim like less or more *less* |
7 | 866 |
867 If you use the less or more program to view a file, you don't get syntax | |
868 highlighting. Thus you would like to use Vim instead. You can do this by | |
869 using the shell script "$VIMRUNTIME/macros/less.sh". | |
870 | |
871 This shell script uses the Vim script "$VIMRUNTIME/macros/less.vim". It sets | |
872 up mappings to simulate the commands that less supports. Otherwise, you can | |
873 still use the Vim commands. | |
874 | |
875 This isn't perfect. For example, when viewing a short file Vim will still use | |
876 the whole screen. But it works good enough for most uses, and you get syntax | |
877 highlighting. | |
878 | |
879 The "h" key will give you a short overview of the available commands. | |
880 | |
881 vim:tw=78:ts=8:ft=help:norl: |