1733
|
1 *starting.txt* For Vim version 7.2. Last change: 2008 Nov 09
|
7
|
2
|
|
3
|
|
4 VIM REFERENCE MANUAL by Bram Moolenaar
|
|
5
|
|
6
|
|
7 Starting Vim *starting*
|
|
8
|
|
9 1. Vim arguments |vim-arguments|
|
|
10 2. Vim on the Amiga |starting-amiga|
|
|
11 3. Running eVim |evim-keys|
|
|
12 4. Initialization |initialization|
|
|
13 5. $VIM and $VIMRUNTIME |$VIM|
|
|
14 6. Suspending |suspend|
|
|
15 7. Saving settings |save-settings|
|
|
16 8. Views and Sessions |views-sessions|
|
|
17 9. The viminfo file |viminfo-file|
|
|
18
|
|
19 ==============================================================================
|
|
20 1. Vim arguments *vim-arguments*
|
|
21
|
|
22 Most often, Vim is started to edit a single file with the command
|
|
23
|
|
24 vim filename *-vim*
|
|
25
|
|
26 More generally, Vim is started with:
|
|
27
|
|
28 vim [option | filename] ..
|
|
29
|
|
30 Option arguments and file name arguments can be mixed, and any number of them
|
|
31 can be given. However, watch out for options that take an argument.
|
|
32
|
|
33 For compatibility with various Vi versions, see |cmdline-arguments|.
|
|
34
|
|
35 Exactly one out of the following five items may be used to choose how to
|
|
36 start editing:
|
|
37
|
|
38 *-file* *---*
|
|
39 filename One or more file names. The first one will be the current
|
|
40 file and read into the buffer. The cursor will be positioned
|
|
41 on the first line of the buffer.
|
|
42 To avoid a file name starting with a '-' being interpreted as
|
|
43 an option, precede the arglist with "--", e.g.: >
|
|
44 vim -- -filename
|
|
45 < All arguments after the "--" will be interpreted as file names,
|
|
46 no other options or "+command" argument can follow.
|
|
47
|
|
48 *--*
|
|
49 - This argument can mean two things, depending on whether Ex
|
|
50 mode is to be used.
|
|
51
|
|
52 Starting in Normal mode: >
|
|
53 vim -
|
|
54 ex -v -
|
|
55 < Start editing a new buffer, which is filled with text
|
|
56 that is read from stdin. The commands that would normally be
|
|
57 read from stdin will now be read from stderr. Example: >
|
|
58 find . -name "*.c" -print | vim -
|
|
59 < The buffer will be marked modified, because it contains text
|
|
60 that needs to be saved. Except when in readonly mode, then
|
|
61 the buffer is not marked modified. Example: >
|
|
62 ls | view -
|
|
63 <
|
|
64 Starting in Ex mode: >
|
|
65 ex -
|
|
66 vim -e -
|
|
67 exim -
|
|
68 vim -E
|
|
69 < Start editing in silent mode. See |-s-ex|.
|
|
70
|
|
71 *-t* *-tag*
|
|
72 -t {tag} A tag. "tag" is looked up in the tags file, the associated
|
|
73 file becomes the current file, and the associated command is
|
|
74 executed. Mostly this is used for C programs, in which case
|
|
75 "tag" often is a function name. The effect is that the file
|
|
76 containing that function becomes the current file and the
|
|
77 cursor is positioned on the start of the function (see
|
|
78 |tags|).
|
|
79
|
|
80 *-q* *-qf*
|
|
81 -q [errorfile] QuickFix mode. The file with the name [errorfile] is read
|
|
82 and the first error is displayed. See |quickfix|.
|
|
83 If [errorfile] is not given, the 'errorfile' option is used
|
|
84 for the file name. See 'errorfile' for the default value.
|
|
85 {not in Vi}
|
|
86
|
|
87 (nothing) Without one of the four items above, Vim will start editing a
|
|
88 new buffer. It's empty and doesn't have a file name.
|
|
89
|
|
90
|
|
91 The startup mode can be changed by using another name instead of "vim", which
|
|
92 is equal to giving options:
|
|
93 ex vim -e Start in Ex mode (see |Ex-mode|). *ex*
|
|
94 exim vim -E Start in improved Ex mode (see |Ex-mode|). *exim*
|
|
95 (normally not installed)
|
|
96 view vim -R Start in read-only mode (see |-R|). *view*
|
|
97 gvim vim -g Start the GUI (see |gui|). *gvim*
|
|
98 gex vim -eg Start the GUI in Ex mode. *gex*
|
|
99 gview vim -Rg Start the GUI in read-only mode. *gview*
|
|
100 rvim vim -Z Like "vim", but in restricted mode (see |-Z|) *rvim*
|
|
101 rview vim -RZ Like "view", but in restricted mode. *rview*
|
|
102 rgvim vim -gZ Like "gvim", but in restricted mode. *rgvim*
|
|
103 rgview vim -RgZ Like "gview", but in restricted mode. *rgview*
|
|
104 evim vim -y Easy Vim: set 'insertmode' (see |-y|) *evim*
|
|
105 eview vim -yR Like "evim" in read-only mode *eview*
|
|
106 vimdiff vim -d Start in diff mode |diff-mode|
|
|
107 gvimdiff vim -gd Start in diff mode |diff-mode|
|
|
108
|
|
109 Additional characters may follow, they are ignored. For example, you can have
|
|
110 "gvim-5" to start the GUI. You must have an executable by that name then, of
|
|
111 course.
|
|
112
|
|
113 On Unix, you would normally have one executable called Vim, and links from the
|
|
114 different startup-names to that executable. If your system does not support
|
|
115 links and you do not want to have several copies of the executable, you could
|
|
116 use an alias instead. For example: >
|
|
117 alias view vim -R
|
|
118 alias gvim vim -g
|
|
119 <
|
|
120 *startup-options*
|
|
121 The option arguments may be given in any order. Single-letter options can be
|
|
122 combined after one dash. There can be no option arguments after the "--"
|
|
123 argument.
|
|
124
|
|
125 On VMS all option arguments are assumed to be lowercase, unless preceded with
|
|
126 a slash. Thus "-R" means recovery and "-/R" readonly.
|
|
127
|
|
128 --help *-h* *--help*
|
|
129 -h Give usage (help) message and exit. {not in Vi}
|
|
130 See |info-message| about capturing the text.
|
|
131
|
|
132 *--version*
|
|
133 --version Print version information and exit. Same output as for
|
|
134 |:version| command. {not in Vi}
|
|
135 See |info-message| about capturing the text.
|
|
136
|
|
137 *--noplugin*
|
|
138 --noplugin Skip loading plugins. Resets the 'loadplugins' option.
|
|
139 {not in Vi}
|
|
140 Note that the |-u| argument may also disable loading plugins:
|
|
141 argument load vimrc files load plugins ~
|
|
142 (nothing) yes yes
|
|
143 -u NONE no no
|
|
144 -u NORC no yes
|
|
145 --noplugin yes no
|
|
146
|
1989
|
147 --startuptime {fname} *--startuptime*
|
1972
|
148 During startup write timing messages to the file {fname}.
|
|
149 This can be used to find out where time is spent while loading
|
1989
|
150 your .vimrc, plugins and opening the first file.
|
1972
|
151 When {fname} already exists new messages are appended.
|
1989
|
152 (Only available when compiled with the |+startuptime|
|
|
153 feature).
|
1972
|
154
|
7
|
155 *--literal*
|
|
156 --literal Take file names literally, don't expand wildcards. Not needed
|
|
157 for Unix, because Vim always takes file names literally (the
|
|
158 shell expands wildcards).
|
|
159 Applies to all the names, also the ones that come before this
|
|
160 argument.
|
|
161
|
|
162 *-+*
|
|
163 +[num] The cursor will be positioned on line "num" for the first
|
|
164 file being edited. If "num" is missing, the cursor will be
|
|
165 positioned on the last line.
|
|
166
|
|
167 *-+/*
|
|
168 +/{pat} The cursor will be positioned on the first line containing
|
|
169 "pat" in the first file being edited (see |pattern| for the
|
|
170 available search patterns).
|
|
171
|
|
172 +{command} *-+c* *-c*
|
|
173 -c {command} {command} will be executed after the first file has been
|
|
174 read (and after autocommands and modelines for that file have
|
|
175 been processed). "command" is interpreted as an Ex command.
|
|
176 If the "command" contains spaces, it must be enclosed in
|
|
177 double quotes (this depends on the shell that is used).
|
|
178 Example: >
|
|
179 vim "+set si" main.c
|
|
180 vim "+find stdio.h"
|
|
181 vim -c "set ff=dos" -c wq mine.mak
|
|
182 <
|
|
183 Note: You can use up to 10 "+" or "-c" arguments in a Vim
|
|
184 command. They are executed in the order given. A "-S"
|
|
185 argument counts as a "-c" argument as well.
|
|
186 {Vi only allows one command}
|
|
187
|
|
188 --cmd {command} *--cmd*
|
|
189 {command} will be executed before processing any vimrc file.
|
|
190 Otherwise it acts like -c {command}. You can use up to 10 of
|
|
191 these commands, independently from "-c" commands.
|
|
192 {not in Vi}
|
|
193
|
|
194 *-S*
|
|
195 -S {file} The {file} will be sourced after the first file has been read.
|
|
196 This is an easy way to do the equivalent of: >
|
|
197 -c "source {file}"
|
|
198 < It can be mixed with "-c" arguments and repeated like "-c".
|
|
199 The limit of 10 "-c" arguments applies here as well.
|
|
200 {file} cannot start with a "-".
|
|
201 {not in Vi}
|
|
202
|
|
203 -S Works like "-S Session.vim". Only when used as the last
|
|
204 argument or when another "-" option follows.
|
|
205
|
|
206 *-r*
|
|
207 -r Recovery mode. Without a file name argument, a list of
|
|
208 existing swap files is given. With a file name, a swap file
|
|
209 is read to recover a crashed editing session. See
|
|
210 |crash-recovery|.
|
|
211
|
|
212 *-L*
|
|
213 -L Same as -r. {only in some versions of Vi: "List recoverable
|
|
214 edit sessions"}
|
|
215
|
|
216 *-R*
|
|
217 -R Readonly mode. The 'readonly' option will be set for all the
|
|
218 files being edited. You can still edit the buffer, but will
|
|
219 be prevented from accidentally overwriting a file. If you
|
|
220 forgot that you are in View mode and did make some changes,
|
|
221 you can overwrite a file by adding an exclamation mark to
|
|
222 the Ex command, as in ":w!". The 'readonly' option can be
|
|
223 reset with ":set noro" (see the options chapter, |options|).
|
|
224 Subsequent edits will not be done in readonly mode. Calling
|
|
225 the executable "view" has the same effect as the -R argument.
|
|
226 The 'updatecount' option will be set to 10000, meaning that
|
|
227 the swap file will not be updated automatically very often.
|
|
228
|
|
229 *-m*
|
|
230 -m Modifications not allowed to be written. The 'write' option
|
|
231 will be reset, so that writing files is disabled. However,
|
|
232 the 'write' option can be set to enable writing again.
|
|
233 {not in Vi}
|
|
234
|
|
235 *-M*
|
|
236 -M Modifications not allowed. The 'modifiable' option will be
|
|
237 reset, so that changes are not allowed. The 'write' option
|
|
238 will be reset, so that writing files is disabled. However,
|
|
239 the 'modifiable' and 'write' options can be set to enable
|
|
240 changes and writing.
|
|
241 {not in Vi}
|
|
242
|
|
243 *-Z* *restricted-mode* *E145*
|
|
244 -Z Restricted mode. All commands that make use of an external
|
|
245 shell are disabled. This includes suspending with CTRL-Z,
|
|
246 ":sh", filtering, the system() function, backtick expansion,
|
|
247 etc.
|
|
248 {not in Vi}
|
|
249
|
|
250 *-g*
|
|
251 -g Start Vim in GUI mode. See |gui|. {not in Vi}
|
|
252
|
|
253 *-v*
|
|
254 -v Start Ex in Vi mode. Only makes a difference when the
|
|
255 executable is called "ex" or "gvim". For gvim the GUI is not
|
|
256 started if possible.
|
|
257
|
|
258 *-e*
|
|
259 -e Start Vim in Ex mode |Q|. Only makes a difference when the
|
|
260 executable is not called "ex".
|
|
261
|
|
262 *-E*
|
|
263 -E Start Vim in improved Ex mode |gQ|. Only makes a difference
|
|
264 when the executable is not called "exim".
|
|
265 {not in Vi}
|
|
266
|
|
267 *-s-ex*
|
|
268 -s Silent or batch mode. Only when Vim was started as "ex" or
|
|
269 when preceded with the "-e" argument. Otherwise see |-s|,
|
|
270 which does take an argument while this use of "-s" doesn't.
|
|
271 To be used when Vim is used to execute Ex commands from a file
|
|
272 instead of a terminal. Switches off most prompts and
|
|
273 informative messages. Also warnings and error messages.
|
168
|
274 The output of these commands is displayed (to stdout):
|
|
275 :print
|
|
276 :list
|
|
277 :number
|
|
278 :set to display option values.
|
|
279 When 'verbose' is non-zero messages are printed (for
|
|
280 debugging, to stderr).
|
|
281 'term' and $TERM are not used.
|
7
|
282 If Vim appears to be stuck try typing "qa!<Enter>". You don't
|
|
283 get a prompt thus you can't see Vim is waiting for you to type
|
|
284 something.
|
|
285 Initializations are skipped (except the ones given with the
|
|
286 "-u" argument).
|
|
287 Example: >
|
|
288 vim -e -s < thefilter thefile
|
|
289 <
|
|
290 *-b*
|
|
291 -b Binary mode. File I/O will only recognize <NL> to separate
|
237
|
292 lines. The 'expandtab' option will be reset. The 'textwidth'
|
7
|
293 option is set to 0. 'modeline' is reset. The 'binary' option
|
|
294 is set. This is done after reading the vimrc/exrc files but
|
|
295 before reading any file in the arglist. See also
|
|
296 |edit-binary|. {not in Vi}
|
|
297
|
|
298 *-l*
|
|
299 -l Lisp mode. Sets the 'lisp' and 'showmatch' options on.
|
|
300
|
|
301 *-A*
|
|
302 -A Arabic mode. Sets the 'arabic' option on. (Only when
|
|
303 compiled with the |+arabic| features (which include
|
|
304 |+rightleft|), otherwise Vim gives an error message
|
237
|
305 and exits.) {not in Vi}
|
7
|
306
|
|
307 *-F*
|
|
308 -F Farsi mode. Sets the 'fkmap' and 'rightleft' options on.
|
|
309 (Only when compiled with |+rightleft| and |+farsi| features,
|
237
|
310 otherwise Vim gives an error message and exits.) {not in Vi}
|
7
|
311
|
|
312 *-H*
|
|
313 -H Hebrew mode. Sets the 'hkmap' and 'rightleft' options on.
|
|
314 (Only when compiled with the |+rightleft| feature, otherwise
|
237
|
315 Vim gives an error message and exits.) {not in Vi}
|
7
|
316
|
|
317 *-V* *verbose*
|
|
318 -V[N] Verbose. Sets the 'verbose' option to [N] (default: 10).
|
|
319 Messages will be given for each file that is ":source"d and
|
|
320 for reading or writing a viminfo file. Can be used to find
|
|
321 out what is happening upon startup and exit. {not in Vi}
|
1125
|
322 Example: >
|
|
323 vim -V8 foobar
|
7
|
324
|
294
|
325 -V[N]{filename}
|
|
326 Like -V and set 'verbosefile' to {filename}. The result is
|
|
327 that messages are not displayed but written to the file
|
|
328 {filename}. {filename} must not start with a digit.
|
1125
|
329 Example: >
|
|
330 vim -V20vimlog foobar
|
|
331 <
|
7
|
332 *-D*
|
|
333 -D Debugging. Go to debugging mode when executing the first
|
|
334 command from a script. |debug-mode|
|
|
335 {not available when compiled without the |+eval| feature}
|
|
336 {not in Vi}
|
|
337
|
|
338 *-C*
|
|
339 -C Compatible mode. Sets the 'compatible' option. You can use
|
|
340 this to get 'compatible', even though a .vimrc file exists.
|
|
341 But the command ":set nocompatible" overrules it anyway.
|
|
342 Also see |compatible-default|. {not in Vi}
|
|
343
|
|
344 *-N*
|
|
345 -N Not compatible mode. Resets the 'compatible' option. You can
|
|
346 use this to get 'nocompatible', when there is no .vimrc file.
|
|
347 Also see |compatible-default|. {not in Vi}
|
|
348
|
|
349 *-y* *easy*
|
|
350 -y Easy mode. Implied for |evim| and |eview|. Starts with
|
|
351 'insertmode' set and behaves like a click-and-type editor.
|
|
352 This sources the script $VIMRUNTIME/evim.vim. Mappings are
|
|
353 set up to work like most click-and-type editors, see
|
|
354 |evim-keys|. The GUI is started when available.
|
|
355 {not in Vi}
|
|
356
|
|
357 *-n*
|
|
358 -n No swap file will be used. Recovery after a crash will be
|
|
359 impossible. Handy if you want to view or edit a file on a
|
|
360 very slow medium (e.g., a floppy).
|
|
361 Can also be done with ":set updatecount=0". You can switch it
|
|
362 on again by setting the 'updatecount' option to some value,
|
|
363 e.g., ":set uc=100".
|
|
364 'updatecount' is set to 0 AFTER executing commands from a
|
|
365 vimrc file, but before the GUI initializations. Thus it
|
|
366 overrides a setting for 'updatecount' in a vimrc file, but not
|
|
367 in a gvimrc file. See |startup|.
|
|
368 When you want to reduce accesses to the disk (e.g., for a
|
|
369 laptop), don't use "-n", but set 'updatetime' and
|
|
370 'updatecount' to very big numbers, and type ":preserve" when
|
|
371 you want to save your work. This way you keep the possibility
|
|
372 for crash recovery.
|
|
373 {not in Vi}
|
|
374
|
|
375 *-o*
|
|
376 -o[N] Open N windows, split horizontally. If [N] is not given,
|
|
377 one window is opened for every file given as argument. If
|
|
378 there is not enough room, only the first few files get a
|
|
379 window. If there are more windows than arguments, the last
|
|
380 few windows will be editing an empty file.
|
|
381 {not in Vi}
|
|
382
|
|
383 *-O*
|
|
384 -O[N] Open N windows, split vertically. Otherwise it's like -o.
|
|
385 If both the -o and the -O option are given, the last one on
|
|
386 the command line determines how the windows will be split.
|
|
387 {not in Vi}
|
|
388
|
674
|
389 *-p*
|
|
390 -p[N] Open N tab pages. If [N] is not given, one tab page is opened
|
699
|
391 for every file given as argument. The maximum is set with
|
|
392 'tabpagemax' pages (default 10). If there are more tab pages
|
|
393 than arguments, the last few tab pages will be editing an
|
805
|
394 empty file. Also see |tabpage|.
|
674
|
395 {not in Vi}
|
|
396
|
7
|
397 *-T*
|
|
398 -T {terminal} Set the terminal type to "terminal". This influences the
|
|
399 codes that Vim will send to your terminal. This is normally
|
|
400 not needed, because Vim will be able to find out what type
|
237
|
401 of terminal you are using. (See |terminal-info|.) {not in Vi}
|
7
|
402
|
|
403 *-d*
|
|
404 -d Start in diff mode, like |vimdiff|.
|
|
405 {not in Vi} {not available when compiled without the |+diff|
|
|
406 feature}
|
|
407
|
|
408 -d {device} Only on the Amiga and when not compiled with the |+diff|
|
|
409 feature. Works like "-dev".
|
|
410 *-dev*
|
|
411 -dev {device} Only on the Amiga: The {device} is opened to be used for
|
|
412 editing.
|
|
413 Normally you would use this to set the window position and
|
|
414 size: "-d con:x/y/width/height", e.g.,
|
|
415 "-d con:30/10/600/150". But you can also use it to start
|
|
416 editing on another device, e.g., AUX:. {not in Vi}
|
|
417 *-f*
|
|
418 -f Amiga: Do not restart Vim to open a new window. This
|
|
419 option should be used when Vim is started by a program that
|
|
420 will wait for the edit session to finish (e.g., mail or
|
|
421 readnews). See |amiga-window|.
|
|
422
|
|
423 GUI: Do not disconnect from the program that started Vim.
|
|
424 'f' stands for "foreground". If omitted, the GUI forks a new
|
|
425 process and exits the current one. "-f" should be used when
|
|
426 gvim is started by a program that will wait for the edit
|
|
427 session to finish (e.g., mail or readnews). If you want gvim
|
819
|
428 never to fork, include 'f' in 'guioptions' in your |gvimrc|.
|
7
|
429 Careful: You can use "-gf" to start the GUI in the foreground,
|
|
430 but "-fg" is used to specify the foreground color. |gui-fork|
|
|
431 {not in Vi}
|
|
432
|
|
433 *--nofork*
|
|
434 --nofork GUI: Do not fork. Same as |-f|.
|
|
435 *-u* *E282*
|
|
436 -u {vimrc} The file {vimrc} is read for initializations. Most other
|
|
437 initializations are skipped; see |initialization|. This can
|
|
438 be used to start Vim in a special mode, with special
|
|
439 mappings and settings. A shell alias can be used to make
|
|
440 this easy to use. For example: >
|
|
441 alias vimc vim -u ~/.c_vimrc !*
|
|
442 < Also consider using autocommands; see |autocommand|.
|
|
443 When {vimrc} is equal to "NONE" (all uppercase), all
|
|
444 initializations from files and environment variables are
|
819
|
445 skipped, including reading the |gvimrc| file when the GUI
|
7
|
446 starts. Loading plugins is also skipped.
|
|
447 When {vimrc} is equal to "NORC" (all uppercase), this has the
|
|
448 same effect as "NONE", but loading plugins is not skipped.
|
|
449 Using the "-u" argument has the side effect that the
|
|
450 'compatible' option will be on by default. This can have
|
|
451 unexpected effects. See |'compatible'|.
|
|
452 {not in Vi}
|
|
453
|
|
454 *-U* *E230*
|
819
|
455 -U {gvimrc} The file {gvimrc} is read for initializations when the GUI
|
237
|
456 starts. Other GUI initializations are skipped. When {gvimrc}
|
43
|
457 is equal to "NONE", no file is read for GUI initializations at
|
|
458 all. |gui-init|
|
7
|
459 Exception: Reading the system-wide menu file is always done.
|
|
460 {not in Vi}
|
|
461
|
|
462 *-i*
|
|
463 -i {viminfo} The file "viminfo" is used instead of the default viminfo
|
|
464 file. If the name "NONE" is used (all uppercase), no viminfo
|
|
465 file is read or written, even if 'viminfo' is set or when
|
|
466 ":rv" or ":wv" are used. See also |viminfo-file|.
|
|
467 {not in Vi}
|
|
468
|
|
469 *-x*
|
|
470 -x Use encryption to read/write files. Will prompt for a key,
|
|
471 which is then stored in the 'key' option. All writes will
|
|
472 then use this key to encrypt the text. The '-x' argument is
|
|
473 not needed when reading a file, because there is a check if
|
|
474 the file that is being read has been encrypted, and Vim asks
|
|
475 for a key automatically. |encryption|
|
|
476
|
|
477 *-X*
|
|
478 -X Do not try connecting to the X server to get the current
|
|
479 window title and copy/paste using the X clipboard. This
|
|
480 avoids a long startup time when running Vim in a terminal
|
|
481 emulator and the connection to the X server is slow.
|
1972
|
482 See |--startuptime| to find out if affects you.
|
7
|
483 Only makes a difference on Unix or VMS, when compiled with the
|
|
484 |+X11| feature. Otherwise it's ignored.
|
|
485 To disable the connection only for specific terminals, see the
|
|
486 'clipboard' option.
|
|
487 When the X11 Session Management Protocol (XSMP) handler has
|
|
488 been built in, the -X option also disables that connection as
|
|
489 it, too, may have undesirable delays.
|
|
490 When the connection is desired later anyway (e.g., for
|
|
491 client-server messages), call the |serverlist()| function.
|
|
492 This does not enable the XSMP handler though.
|
|
493 {not in Vi}
|
|
494
|
|
495 *-s*
|
|
496 -s {scriptin} The script file "scriptin" is read. The characters in the
|
|
497 file are interpreted as if you had typed them. The same can
|
|
498 be done with the command ":source! {scriptin}". If the end
|
|
499 of the file is reached before the editor exits, further
|
|
500 characters are read from the keyboard. Only works when not
|
|
501 started in Ex mode, see |-s-ex|. See also |complex-repeat|.
|
|
502 {not in Vi}
|
|
503
|
164
|
504 *-w_nr*
|
|
505 -w {number}
|
|
506 -w{number} Set the 'window' option to {number}.
|
|
507
|
7
|
508 *-w*
|
|
509 -w {scriptout} All the characters that you type are recorded in the file
|
|
510 "scriptout", until you exit Vim. This is useful if you want
|
|
511 to create a script file to be used with "vim -s" or
|
|
512 ":source!". When the "scriptout" file already exists, new
|
|
513 characters are appended. See also |complex-repeat|.
|
164
|
514 {scriptout} cannot start with a digit.
|
7
|
515 {not in Vi}
|
|
516
|
|
517 *-W*
|
|
518 -W {scriptout} Like -w, but do not append, overwrite an existing file.
|
|
519 {not in Vi}
|
|
520
|
|
521 --remote [+{cmd}] {file} ...
|
|
522 Open the {file} in another Vim that functions as a server.
|
|
523 Any non-file arguments must come before this.
|
|
524 See |--remote|. {not in Vi}
|
|
525
|
|
526 --remote-silent [+{cmd}] {file} ...
|
|
527 Like --remote, but don't complain if there is no server.
|
|
528 See |--remote-silent|. {not in Vi}
|
|
529
|
|
530 --remote-wait [+{cmd}] {file} ...
|
|
531 Like --remote, but wait for the server to finish editing the
|
|
532 file(s).
|
|
533 See |--remote-wait|. {not in Vi}
|
|
534
|
|
535 --remote-wait-silent [+{cmd}] {file} ...
|
|
536 Like --remote-wait, but don't complain if there is no server.
|
|
537 See |--remote-wait-silent|. {not in Vi}
|
|
538
|
|
539 --servername {name}
|
|
540 Specify the name of the Vim server to send to or to become.
|
|
541 See |--servername|. {not in Vi}
|
|
542
|
|
543 --remote-send {keys}
|
|
544 Send {keys} to a Vim server and exit.
|
|
545 See |--remote-send|. {not in Vi}
|
|
546
|
|
547 --remote-expr {expr}
|
|
548 Evaluate {expr} in another Vim that functions as a server.
|
|
549 The result is printed on stdout.
|
|
550 See |--remote-expr|. {not in Vi}
|
|
551
|
|
552 --serverlist Output a list of Vim server names and exit. See
|
1125
|
553 |--serverlist|. {not in Vi}
|
7
|
554
|
|
555 --socketid {id} *--socketid*
|
|
556 GTK+ GUI Vim only. Make gvim try to use GtkPlug mechanism, so
|
|
557 that it runs inside another window. See |gui-gtk-socketid|
|
|
558 for details. {not in Vi}
|
|
559
|
1376
|
560 --windowid {id} *--windowid*
|
|
561 Win32 GUI Vim only. Make gvim try to use the window {id} as a
|
|
562 parent, so that it runs inside that window. See
|
|
563 |gui-w32-windowid| for details. {not in Vi}
|
|
564
|
7
|
565 --echo-wid *--echo-wid*
|
|
566 GTK+ GUI Vim only. Make gvim echo the Window ID on stdout,
|
|
567 which can be used to run gvim in a kpart widget. The format
|
|
568 of the output is: >
|
|
569 WID: 12345\n
|
|
570 < {not in Vi}
|
|
571
|
|
572 --role {role} *--role*
|
|
573 GTK+ 2 GUI only. Set the role of the main window to {role}.
|
|
574 The window role can be used by a window manager to uniquely
|
|
575 identify a window, in order to restore window placement and
|
|
576 such. The --role argument is passed automatically when
|
|
577 restoring the session on login. See |gui-gnome-session|
|
|
578 {not in Vi}
|
|
579
|
|
580 -P {parent-title} *-P* *MDI* *E671* *E672*
|
|
581 Win32 only: Specify the title of the parent application. When
|
|
582 possible, Vim will run in an MDI window inside the
|
|
583 application.
|
|
584 {parent-title} must appear in the window title of the parent
|
|
585 application. Make sure that it is specific enough.
|
|
586 Note that the implementation is still primitive. It won't
|
|
587 work with all applications and the menu doesn't work.
|
|
588
|
|
589 -nb *-nb*
|
|
590 -nb={fname}
|
|
591 -nb:{hostname}:{addr}:{password}
|
|
592 Attempt connecting to Netbeans and become an editor server for
|
|
593 it. The second form specifies a file to read connection info
|
|
594 from. The third form specifies the hostname, address and
|
|
595 password for connecting to Netbeans. |netbeans-run|
|
|
596
|
|
597 Example for using a script file to change a name in several files:
|
|
598 Create a file "subs.vi" containing substitute commands and a :wq
|
|
599 command: >
|
|
600 :%s/Jones/Smith/g
|
|
601 :%s/Allen/Peter/g
|
|
602 :wq
|
|
603 <
|
|
604 Execute Vim on all files you want to change: >
|
|
605
|
|
606 foreach i ( *.let ) vim -s subs.vi $i
|
|
607
|
|
608 If the executable is called "view", Vim will start in Readonly mode. This is
|
|
609 useful if you can make a hard or symbolic link from "view" to "vim".
|
|
610 Starting in Readonly mode can also be done with "vim -R".
|
|
611
|
|
612 If the executable is called "ex", Vim will start in "Ex" mode. This means it
|
|
613 will accept only ":" commands. But when the "-v" argument is given, Vim will
|
|
614 start in Normal mode anyway.
|
|
615
|
|
616 Additional arguments are available on unix like systems when compiled with
|
|
617 X11 GUI support. See |gui-resources|.
|
|
618
|
|
619 ==============================================================================
|
|
620 2. Vim on the Amiga *starting-amiga*
|
|
621
|
|
622 Starting Vim from the Workbench *workbench*
|
|
623 -------------------------------
|
|
624
|
|
625 Vim can be started from the Workbench by clicking on its icon twice. It will
|
|
626 then start with an empty buffer.
|
|
627
|
|
628 Vim can be started to edit one or more files by using a "Project" icon. The
|
|
629 "Default Tool" of the icon must be the full pathname of the Vim executable.
|
|
630 The name of the ".info" file must be the same as the name of the text file.
|
|
631 By clicking on this icon twice, Vim will be started with the file name as
|
|
632 current file name, which will be read into the buffer (if it exists). You can
|
|
633 edit multiple files by pressing the shift key while clicking on icons, and
|
|
634 clicking twice on the last one. The "Default Tool" for all these icons must
|
|
635 be the same.
|
|
636
|
|
637 It is not possible to give arguments to Vim, other than file names, from the
|
|
638 workbench.
|
|
639
|
|
640 Vim window *amiga-window*
|
|
641 ----------
|
|
642
|
|
643 Vim will run in the CLI window where it was started. If Vim was started with
|
|
644 the "run" or "runback" command, or if Vim was started from the workbench, it
|
|
645 will open a window of its own.
|
|
646
|
|
647 Technical detail:
|
|
648 To open the new window a little trick is used. As soon as Vim
|
|
649 recognizes that it does not run in a normal CLI window, it will
|
|
650 create a script file in "t:". This script file contains the same
|
|
651 command as the one Vim was started with, and an "endcli" command.
|
|
652 This script file is then executed with a "newcli" command (the "c:run"
|
|
653 and "c:newcli" commands are required for this to work). The script
|
|
654 file will hang around until reboot, or until you delete it. This
|
|
655 method is required to get the ":sh" and ":!" commands to work
|
|
656 correctly. But when Vim was started with the -f option (foreground
|
|
657 mode), this method is not used. The reason for this is that
|
|
658 when a program starts Vim with the -f option it will wait for Vim to
|
|
659 exit. With the script trick, the calling program does not know when
|
|
660 Vim exits. The -f option can be used when Vim is started by a mail
|
|
661 program which also waits for the edit session to finish. As a
|
|
662 consequence, the ":sh" and ":!" commands are not available when the
|
|
663 -f option is used.
|
|
664
|
|
665 Vim will automatically recognize the window size and react to window
|
|
666 resizing. Under Amiga DOS 1.3, it is advised to use the fastfonts program,
|
|
667 "FF", to speed up display redrawing.
|
|
668
|
|
669 ==============================================================================
|
|
670 3. Running eVim *evim-keys*
|
|
671
|
|
672 EVim runs Vim as click-and-type editor. This is very unlike the original Vi
|
|
673 idea. But it helps for people that don't use Vim often enough to learn the
|
|
674 commands. Hopefully they will find out that learning to use Normal mode
|
|
675 commands will make their editing much more effective.
|
|
676
|
|
677 In Evim these options are changed from their default value:
|
|
678
|
|
679 :set nocompatible Use Vim improvements
|
|
680 :set insertmode Remain in Insert mode most of the time
|
|
681 :set hidden Keep invisible buffers loaded
|
|
682 :set backup Keep backup files (not for VMS)
|
|
683 :set backspace=2 Backspace over everything
|
|
684 :set autoindent auto-indent new lines
|
|
685 :set history=50 keep 50 lines of Ex commands
|
|
686 :set ruler show the cursor position
|
|
687 :set incsearch show matches halfway typing a pattern
|
|
688 :set mouse=a use the mouse in all modes
|
|
689 :set hlsearch highlight all matches for a search pattern
|
|
690 :set whichwrap+=<,>,[,] <Left> and <Right> wrap around line breaks
|
|
691 :set guioptions-=a non-Unix only: don't do auto-select
|
|
692
|
|
693 Key mappings:
|
|
694 <Down> moves by screen lines rather than file lines
|
|
695 <Up> idem
|
|
696 Q does "gq", formatting, instead of Ex mode
|
|
697 <BS> in Visual mode: deletes the selection
|
|
698 CTRL-X in Visual mode: Cut to clipboard
|
|
699 <S-Del> idem
|
|
700 CTRL-C in Visual mode: Copy to clipboard
|
|
701 <C-Insert> idem
|
|
702 CTRL-V Pastes from the clipboard (in any mode)
|
|
703 <S-Insert> idem
|
|
704 CTRL-Q do what CTRL-V used to do
|
|
705 CTRL-Z undo
|
|
706 CTRL-Y redo
|
|
707 <M-Space> system menu
|
|
708 CTRL-A select all
|
|
709 <C-Tab> next window, CTRL-W w
|
|
710 <C-F4> close window, CTRL-W c
|
|
711
|
|
712 Additionally:
|
|
713 - ":behave mswin" is used |:behave|
|
|
714 - syntax highlighting is enabled
|
|
715 - filetype detection is enabled, filetype plugins and indenting is enabled
|
|
716 - in a text file 'textwidth' is set to 78
|
|
717
|
|
718 One hint: If you want to go to Normal mode to be able to type a sequence of
|
|
719 commands, use CTRL-L. |i_CTRL-L|
|
|
720
|
|
721 ==============================================================================
|
|
722 4. Initialization *initialization* *startup*
|
|
723
|
|
724 This section is about the non-GUI version of Vim. See |gui-fork| for
|
|
725 additional initialization when starting the GUI.
|
|
726
|
|
727 At startup, Vim checks environment variables and files and sets values
|
|
728 accordingly. Vim proceeds in this order:
|
|
729
|
|
730 1. Set the 'shell' and 'term' option *SHELL* *COMSPEC* *TERM*
|
|
731 The environment variable SHELL, if it exists, is used to set the
|
|
732 'shell' option. On MS-DOS and Win32, the COMSPEC variable is used
|
|
733 if SHELL is not set.
|
|
734 The environment variable TERM, if it exists, is used to set the 'term'
|
667
|
735 option. However, 'term' will change later when starting the GUI (step
|
|
736 8 below).
|
7
|
737
|
|
738 2. Process the arguments
|
|
739 The options and file names from the command that start Vim are
|
|
740 inspected. Buffers are created for all files (but not loaded yet).
|
294
|
741 The |-V| argument can be used to display or log what happens next,
|
|
742 useful for debugging the initializations.
|
7
|
743
|
|
744 3. Execute Ex commands, from environment variables and/or files
|
|
745 An environment variable is read as one Ex command line, where multiple
|
|
746 commands must be separated with '|' or "<NL>".
|
|
747 *vimrc* *exrc*
|
|
748 A file that contains initialization commands is called a "vimrc" file.
|
|
749 Each line in a vimrc file is executed as an Ex command line. It is
|
|
750 sometimes also referred to as "exrc" file. They are the same type of
|
|
751 file, but "exrc" is what Vi always used, "vimrc" is a Vim specific
|
|
752 name. Also see |vimrc-intro|.
|
|
753
|
|
754 Recommended place for your personal initializations:
|
|
755 Unix $HOME/.vimrc
|
|
756 OS/2 $HOME/.vimrc or $VIM/.vimrc (or _vimrc)
|
|
757 MS-DOS and Win32 $HOME/_vimrc or $VIM/_vimrc
|
|
758 Amiga s:.vimrc or $VIM/.vimrc
|
|
759
|
|
760 If Vim was started with "-u filename", the file "filename" is used.
|
|
761 All following initializations until 4. are skipped.
|
|
762 "vim -u NORC" can be used to skip these initializations without
|
|
763 reading a file. "vim -u NONE" also skips loading plugins. |-u|
|
|
764
|
|
765 If Vim was started in Ex mode with the "-s" argument, all following
|
|
766 initializations until 4. are skipped. Only the "-u" option is
|
|
767 interpreted.
|
|
768 *evim.vim*
|
|
769 a. If vim was started as |evim| or |eview| or with the |-y| argument, the
|
|
770 script $VIMRUNTIME/evim.vim will be loaded.
|
|
771 *system-vimrc*
|
|
772 b. For Unix, MS-DOS, MS-Windows, OS/2, VMS, Macintosh, RISC-OS and Amiga
|
|
773 the system vimrc file is read for initializations. The path of this
|
|
774 file is shown with the ":version" command. Mostly it's "$VIM/vimrc".
|
|
775 Note that this file is ALWAYS read in 'compatible' mode, since the
|
|
776 automatic resetting of 'compatible' is only done later. Add a ":set
|
|
777 nocp" command if you like.
|
810
|
778 For the Macintosh the $VIMRUNTIME/macmap.vim is read.
|
7
|
779
|
|
780 *VIMINIT* *.vimrc* *_vimrc* *EXINIT* *.exrc* *_exrc*
|
|
781 c. Four places are searched for initializations. The first that exists
|
819
|
782 is used, the others are ignored. The $MYVIMRC environment variable is
|
|
783 set to the file that was first found, unless $MYVIMRC was already set.
|
7
|
784 - The environment variable VIMINIT (see also |compatible-default|) (*)
|
|
785 The value of $VIMINIT is used as an Ex command line.
|
|
786 - The user vimrc file(s):
|
|
787 "$HOME/.vimrc" (for Unix and OS/2) (*)
|
|
788 "s:.vimrc" (for Amiga) (*)
|
|
789 "home:.vimrc" (for Amiga) (*)
|
|
790 "$VIM/.vimrc" (for OS/2 and Amiga) (*)
|
|
791 "$HOME/_vimrc" (for MS-DOS and Win32) (*)
|
17
|
792 "$VIM/_vimrc" (for MS-DOS and Win32) (*)
|
7
|
793 Note: For Unix, OS/2 and Amiga, when ".vimrc" does not exist,
|
|
794 "_vimrc" is also tried, in case an MS-DOS compatible file
|
|
795 system is used. For MS-DOS and Win32 ".vimrc" is checked
|
|
796 after "_vimrc", in case long file names are used.
|
|
797 Note: For MS-DOS and Win32, "$HOME" is checked first. If no
|
|
798 "_vimrc" or ".vimrc" is found there, "$VIM" is tried.
|
|
799 See |$VIM| for when $VIM is not set.
|
|
800 - The environment variable EXINIT.
|
|
801 The value of $EXINIT is used as an Ex command line.
|
|
802 - The user exrc file(s). Same as for the user vimrc file, but with
|
247
|
803 "vimrc" replaced by "exrc". But only one of ".exrc" and "_exrc" is
|
|
804 used, depending on the system. And without the (*)!
|
7
|
805
|
|
806 d. If the 'exrc' option is on (which is not the default), the current
|
247
|
807 directory is searched for three files. The first that exists is used,
|
7
|
808 the others are ignored.
|
|
809 - The file ".vimrc" (for Unix, Amiga and OS/2) (*)
|
|
810 "_vimrc" (for MS-DOS and Win32) (*)
|
|
811 - The file "_vimrc" (for Unix, Amiga and OS/2) (*)
|
|
812 ".vimrc" (for MS-DOS and Win32) (*)
|
|
813 - The file ".exrc" (for Unix, Amiga and OS/2)
|
|
814 "_exrc" (for MS-DOS and Win32)
|
|
815
|
|
816 (*) Using this file or environment variable will cause 'compatible' to be
|
|
817 off by default. See |compatible-default|.
|
|
818
|
|
819 4. Load the plugin scripts. *load-plugins*
|
|
820 This does the same as the command: >
|
540
|
821 :runtime! plugin/**/*.vim
|
7
|
822 < The result is that all directories in the 'runtimepath' option will be
|
|
823 searched for the "plugin" sub-directory and all files ending in ".vim"
|
540
|
824 will be sourced (in alphabetical order per directory), also in
|
|
825 subdirectories.
|
7
|
826 Loading plugins won't be done when:
|
|
827 - The 'loadplugins' option was reset in a vimrc file.
|
|
828 - The |--noplugin| command line argument is used.
|
|
829 - The "-u NONE" command line argument is used |-u|.
|
|
830 - When Vim was compiled without the |+eval| feature.
|
632
|
831 Note that using "-c 'set noloadplugins'" doesn't work, because the
|
|
832 commands from the command line have not been executed yet. You can
|
|
833 use "--cmd 'set noloadplugins'" |--cmd|.
|
7
|
834
|
|
835 5. Set 'shellpipe' and 'shellredir'
|
|
836 The 'shellpipe' and 'shellredir' options are set according to the
|
|
837 value of the 'shell' option, unless they have been set before.
|
|
838 This means that Vim will figure out the values of 'shellpipe' and
|
|
839 'shellredir' for you, unless you have set them yourself.
|
|
840
|
|
841 6. Set 'updatecount' to zero, if "-n" command argument used
|
|
842
|
|
843 7. Set binary options
|
|
844 If the "-b" flag was given to Vim, the options for binary editing will
|
|
845 be set now. See |-b|.
|
|
846
|
|
847 8. Perform GUI initializations
|
|
848 Only when starting "gvim", the GUI initializations will be done. See
|
|
849 |gui-init|.
|
|
850
|
|
851 9. Read the viminfo file
|
|
852 If the 'viminfo' option is not empty, the viminfo file is read. See
|
|
853 |viminfo-file|.
|
|
854
|
|
855 10. Read the quickfix file
|
|
856 If the "-q" flag was given to Vim, the quickfix file is read. If this
|
|
857 fails, Vim exits.
|
|
858
|
|
859 11. Open all windows
|
|
860 When the |-o| flag was given, windows will be opened (but not
|
|
861 displayed yet).
|
674
|
862 When the |-p| flag was given, tab pages will be created (but not
|
|
863 displayed yet).
|
7
|
864 When switching screens, it happens now. Redrawing starts.
|
|
865 If the "-q" flag was given to Vim, the first error is jumped to.
|
|
866 Buffers for all windows will be loaded.
|
|
867
|
|
868 12. Execute startup commands
|
|
869 If a "-t" flag was given to Vim, the tag is jumped to.
|
|
870 The commands given with the |-c| and |+cmd| arguments are executed.
|
|
871 If the 'insertmode' option is set, Insert mode is entered.
|
|
872 The |VimEnter| autocommands are executed.
|
|
873
|
|
874 Some hints on using initializations:
|
|
875
|
|
876 Standard setup:
|
|
877 Create a vimrc file to set the default settings and mappings for all your edit
|
|
878 sessions. Put it in a place so that it will be found by 3b:
|
|
879 ~/.vimrc (Unix and OS/2)
|
|
880 s:.vimrc (Amiga)
|
|
881 $VIM\_vimrc (MS-DOS and Win32)
|
|
882 Note that creating a vimrc file will cause the 'compatible' option to be off
|
|
883 by default. See |compatible-default|.
|
|
884
|
|
885 Local setup:
|
|
886 Put all commands that you need for editing a specific directory only into a
|
|
887 vimrc file and place it in that directory under the name ".vimrc" ("_vimrc"
|
|
888 for MS-DOS and Win32). NOTE: To make Vim look for these special files you
|
|
889 have to turn on the option 'exrc'. See |trojan-horse| too.
|
|
890
|
|
891 System setup:
|
|
892 This only applies if you are managing a Unix system with several users and
|
|
893 want to set the defaults for all users. Create a vimrc file with commands
|
|
894 for default settings and mappings and put it in the place that is given with
|
|
895 the ":version" command.
|
|
896
|
|
897 Saving the current state of Vim to a file:
|
|
898 Whenever you have changed values of options or when you have created a
|
|
899 mapping, then you may want to save them in a vimrc file for later use. See
|
|
900 |save-settings| about saving the current state of settings to a file.
|
|
901
|
|
902 Avoiding setup problems for Vi users:
|
|
903 Vi uses the variable EXINIT and the file "~/.exrc". So if you do not want to
|
|
904 interfere with Vi, then use the variable VIMINIT and the file "vimrc" instead.
|
|
905
|
|
906 Amiga environment variables:
|
|
907 On the Amiga, two types of environment variables exist. The ones set with the
|
|
908 DOS 1.3 (or later) setenv command are recognized. See the AmigaDos 1.3
|
|
909 manual. The environment variables set with the old Manx Set command (before
|
|
910 version 5.0) are not recognized.
|
|
911
|
|
912 MS-DOS line separators:
|
|
913 On MS-DOS-like systems (MS-DOS itself, Win32, and OS/2), Vim assumes that all
|
|
914 the vimrc files have <CR> <NL> pairs as line separators. This will give
|
|
915 problems if you have a file with only <NL>s and have a line like
|
|
916 ":map xx yy^M". The trailing ^M will be ignored.
|
|
917
|
|
918 *compatible-default*
|
|
919 When Vim starts, the 'compatible' option is on. This will be used when Vim
|
|
920 starts its initializations. But as soon as a user vimrc file is found, or a
|
|
921 vimrc file in the current directory, or the "VIMINIT" environment variable is
|
|
922 set, it will be set to 'nocompatible'. This has the side effect of setting or
|
|
923 resetting other options (see 'compatible'). But only the options that have
|
|
924 not been set or reset will be changed. This has the same effect like the
|
|
925 value of 'compatible' had this value when starting Vim. Note that this
|
1125
|
926 doesn't happen for the system-wide vimrc file nor when Vim was started with
|
|
927 the |-u| command line argument. It does also happen for gvimrc files. The
|
|
928 $MYVIMRC or $MYGVIMRC file will be set to the first found vimrc and/or gvimrc
|
|
929 file.
|
7
|
930
|
|
931 But there is a side effect of setting or resetting 'compatible' at the moment
|
|
932 a .vimrc file is found: Mappings are interpreted the moment they are
|
|
933 encountered. This makes a difference when using things like "<CR>". If the
|
|
934 mappings depend on a certain value of 'compatible', set or reset it before
|
|
935 giving the mapping.
|
|
936
|
|
937 The above behavior can be overridden in these ways:
|
|
938 - If the "-N" command line argument is given, 'nocompatible' will be used,
|
|
939 even when no vimrc file exists.
|
|
940 - If the "-C" command line argument is given, 'compatible' will be used, even
|
|
941 when a vimrc file exists.
|
|
942 - If the "-u {vimrc}" argument is used, 'compatible' will be used.
|
|
943 - When the name of the executable ends in "ex", then this works like the "-C"
|
|
944 argument was given: 'compatible' will be used, even when a vimrc file
|
|
945 exists. This has been done to make Vim behave like "ex", when it is started
|
|
946 as "ex".
|
|
947
|
|
948 Avoiding trojan horses: *trojan-horse*
|
|
949 While reading the "vimrc" or the "exrc" file in the current directory, some
|
|
950 commands can be disabled for security reasons by setting the 'secure' option.
|
|
951 This is always done when executing the command from a tags file. Otherwise it
|
|
952 would be possible that you accidentally use a vimrc or tags file that somebody
|
|
953 else created and contains nasty commands. The disabled commands are the ones
|
|
954 that start a shell, the ones that write to a file, and ":autocmd". The ":map"
|
|
955 commands are echoed, so you can see which keys are being mapped.
|
|
956 If you want Vim to execute all commands in a local vimrc file, you
|
|
957 can reset the 'secure' option in the EXINIT or VIMINIT environment variable or
|
|
958 in the global "exrc" or "vimrc" file. This is not possible in "vimrc" or
|
|
959 "exrc" in the current directory, for obvious reasons.
|
|
960 On Unix systems, this only happens if you are not the owner of the
|
|
961 vimrc file. Warning: If you unpack an archive that contains a vimrc or exrc
|
|
962 file, it will be owned by you. You won't have the security protection. Check
|
|
963 the vimrc file before you start Vim in that directory, or reset the 'exrc'
|
|
964 option. Some Unix systems allow a user to do "chown" on a file. This makes
|
|
965 it possible for another user to create a nasty vimrc and make you the owner.
|
|
966 Be careful!
|
|
967 When using tag search commands, executing the search command (the last
|
|
968 part of the line in the tags file) is always done in secure mode. This works
|
|
969 just like executing a command from a vimrc/exrc in the current directory.
|
|
970
|
|
971 *slow-start*
|
|
972 If Vim takes a long time to start up, there may be a few causes:
|
|
973 - If the Unix version was compiled with the GUI and/or X11 (check the output
|
|
974 of ":version" for "+GUI" and "+X11"), it may need to load shared libraries
|
|
975 and connect to the X11 server. Try compiling a version with GUI and X11
|
|
976 disabled. This also should make the executable smaller.
|
|
977 Use the |-X| command line argument to avoid connecting to the X server when
|
|
978 running in a terminal.
|
|
979 - If you have "viminfo" enabled, the loading of the viminfo file may take a
|
|
980 while. You can find out if this is the problem by disabling viminfo for a
|
|
981 moment (use the Vim argument "-i NONE", |-i|). Try reducing the number of
|
|
982 lines stored in a register with ":set viminfo='20,<50,s10". |viminfo-file|.
|
|
983
|
|
984 *:intro*
|
|
985 When Vim starts without a file name, an introductory message is displayed (for
|
|
986 those who don't know what Vim is). It is removed as soon as the display is
|
|
987 redrawn in any way. To see the message again, use the ":intro" command (if
|
|
988 there is not enough room, you will see only part of it).
|
|
989 To avoid the intro message on startup, add the 'I' flag to 'shortmess'.
|
|
990
|
|
991 *info-message*
|
|
992 The |--help| and |--version| arguments cause Vim to print a message and then
|
|
993 exit. Normally the message is send to stdout, thus can be redirected to a
|
|
994 file with: >
|
|
995
|
|
996 vim --help >file
|
|
997
|
|
998 From inside Vim: >
|
|
999
|
|
1000 :read !vim --help
|
|
1001
|
|
1002 When using gvim, it detects that it might have been started from the desktop,
|
|
1003 without a terminal to show messages on. This is detected when both stdout and
|
|
1004 stderr are not a tty. This breaks the ":read" command, as used in the example
|
|
1005 above. To make it work again, set 'shellredir' to ">" instead of the default
|
|
1006 ">&": >
|
|
1007
|
|
1008 :set shellredir=>
|
|
1009 :read !gvim --help
|
|
1010
|
|
1011 This still won't work for systems where gvim does not use stdout at all
|
|
1012 though.
|
|
1013
|
|
1014 ==============================================================================
|
|
1015 5. $VIM and $VIMRUNTIME
|
|
1016 *$VIM*
|
|
1017 The environment variable "$VIM" is used to locate various user files for Vim,
|
|
1018 such as the user startup script ".vimrc". This depends on the system, see
|
|
1019 |startup|.
|
|
1020
|
|
1021 To avoid the need for every user to set the $VIM environment variable, Vim
|
|
1022 will try to get the value for $VIM in this order:
|
|
1023 1. The value defined by the $VIM environment variable. You can use this to
|
|
1024 make Vim look in a specific directory for its support files. Example: >
|
|
1025 setenv VIM /home/paul/vim
|
|
1026 2. The path from 'helpfile' is used, unless it contains some environment
|
|
1027 variable too (the default is "$VIMRUNTIME/doc/help.txt": chicken-egg
|
|
1028 problem). The file name ("help.txt" or any other) is removed. Then
|
|
1029 trailing directory names are removed, in this order: "doc", "runtime" and
|
|
1030 "vim{version}" (e.g., "vim54").
|
|
1031 3. For MSDOS, Win32 and OS/2 Vim tries to use the directory name of the
|
|
1032 executable. If it ends in "/src", this is removed. This is useful if you
|
|
1033 unpacked the .zip file in some directory, and adjusted the search path to
|
|
1034 find the vim executable. Trailing directory names are removed, in this
|
|
1035 order: "runtime" and "vim{version}" (e.g., "vim54").
|
|
1036 4. For Unix the compile-time defined installation directory is used (see the
|
|
1037 output of ":version").
|
|
1038
|
|
1039 Once Vim has done this once, it will set the $VIM environment variable. To
|
|
1040 change it later, use a ":let" command like this: >
|
|
1041 :let $VIM = "/home/paul/vim/"
|
|
1042 <
|
|
1043 *$VIMRUNTIME*
|
|
1044 The environment variable "$VIMRUNTIME" is used to locate various support
|
|
1045 files, such as the on-line documentation and files used for syntax
|
|
1046 highlighting. For example, the main help file is normally
|
|
1047 "$VIMRUNTIME/doc/help.txt".
|
|
1048 You don't normally set $VIMRUNTIME yourself, but let Vim figure it out. This
|
|
1049 is the order used to find the value of $VIMRUNTIME:
|
|
1050 1. If the environment variable $VIMRUNTIME is set, it is used. You can use
|
|
1051 this when the runtime files are in an unusual location.
|
|
1052 2. If "$VIM/vim{version}" exists, it is used. {version} is the version
|
|
1053 number of Vim, without any '-' or '.'. For example: "$VIM/vim54". This is
|
|
1054 the normal value for $VIMRUNTIME.
|
|
1055 3. If "$VIM/runtime" exists, it is used.
|
|
1056 4. The value of $VIM is used. This is for backwards compatibility with older
|
|
1057 versions.
|
|
1058 5. When the 'helpfile' option is set and doesn't contain a '$', its value is
|
|
1059 used, with "doc/help.txt" removed from the end.
|
|
1060
|
|
1061 For Unix, when there is a compiled-in default for $VIMRUNTIME (check the
|
|
1062 output of ":version"), steps 2, 3 and 4 are skipped, and the compiled-in
|
|
1063 default is used after step 5. This means that the compiled-in default
|
|
1064 overrules the value of $VIM. This is useful if $VIM is "/etc" and the runtime
|
|
1065 files are in "/usr/share/vim/vim54".
|
|
1066
|
|
1067 Once Vim has done this once, it will set the $VIMRUNTIME environment variable.
|
|
1068 To change it later, use a ":let" command like this: >
|
|
1069 :let $VIMRUNTIME = "/home/piet/vim/vim54"
|
|
1070
|
8
|
1071 In case you need the value of $VIMRUNTIME in a shell (e.g., for a script that
|
|
1072 greps in the help files) you might be able to use this: >
|
|
1073
|
|
1074 VIMRUNTIME=`vim -e -T dumb --cmd 'exe "set t_cm=\<C-M>"|echo $VIMRUNTIME|quit' | tr -d '\015' `
|
|
1075
|
7
|
1076 ==============================================================================
|
|
1077 6. Suspending *suspend*
|
|
1078
|
|
1079 *iconize* *iconise* *CTRL-Z* *v_CTRL-Z*
|
|
1080 CTRL-Z Suspend Vim, like ":stop".
|
|
1081 Works in Normal and in Visual mode. In Insert and
|
|
1082 Command-line mode, the CTRL-Z is inserted as a normal
|
|
1083 character. In Visual mode Vim goes back to Normal
|
|
1084 mode.
|
83
|
1085 Note: if CTRL-Z undoes a change see |mswin.vim|.
|
7
|
1086
|
|
1087
|
|
1088 :sus[pend][!] or *:sus* *:suspend* *:st* *:stop*
|
|
1089 :st[op][!] Suspend Vim.
|
|
1090 If the '!' is not given and 'autowrite' is set, every
|
|
1091 buffer with changes and a file name is written out.
|
|
1092 If the '!' is given or 'autowrite' is not set, changed
|
|
1093 buffers are not written, don't forget to bring Vim
|
|
1094 back to the foreground later!
|
|
1095
|
|
1096 In the GUI, suspending is implemented as iconising gvim. In Windows 95/NT,
|
|
1097 gvim is minimized.
|
|
1098
|
|
1099 On many Unix systems, it is possible to suspend Vim with CTRL-Z. This is only
|
|
1100 possible in Normal and Visual mode (see next chapter, |vim-modes|). Vim will
|
|
1101 continue if you make it the foreground job again. On other systems, CTRL-Z
|
|
1102 will start a new shell. This is the same as the ":sh" command. Vim will
|
|
1103 continue if you exit from the shell.
|
|
1104
|
|
1105 In X-windows the selection is disowned when Vim suspends. this means you
|
|
1106 can't paste it in another application (since Vim is going to sleep an attempt
|
|
1107 to get the selection would make the program hang).
|
|
1108
|
|
1109 ==============================================================================
|
|
1110 7. Saving settings *save-settings*
|
|
1111
|
|
1112 Mostly you will edit your vimrc files manually. This gives you the greatest
|
|
1113 flexibility. There are a few commands to generate a vimrc file automatically.
|
|
1114 You can use these files as they are, or copy/paste lines to include in another
|
|
1115 vimrc file.
|
|
1116
|
|
1117 *:mk* *:mkexrc*
|
|
1118 :mk[exrc] [file] Write current key mappings and changed options to
|
|
1119 [file] (default ".exrc" in the current directory),
|
|
1120 unless it already exists. {not in Vi}
|
|
1121
|
|
1122 :mk[exrc]! [file] Always write current key mappings and changed
|
|
1123 options to [file] (default ".exrc" in the current
|
|
1124 directory). {not in Vi}
|
|
1125
|
|
1126 *:mkv* *:mkvimrc*
|
|
1127 :mkv[imrc][!] [file] Like ":mkexrc", but the default is ".vimrc" in the
|
|
1128 current directory. The ":version" command is also
|
|
1129 written to the file. {not in Vi}
|
|
1130
|
|
1131 These commands will write ":map" and ":set" commands to a file, in such a way
|
|
1132 that when these commands are executed, the current key mappings and options
|
|
1133 will be set to the same values. The options 'columns', 'endofline',
|
|
1134 'fileformat', 'key', 'lines', 'modified', 'scroll', 'term', 'textmode',
|
|
1135 'ttyfast' and 'ttymouse' are not included, because these are terminal or file
|
|
1136 dependent. Note that the options 'binary', 'paste' and 'readonly' are
|
|
1137 included, this might not always be what you want.
|
|
1138
|
|
1139 When special keys are used in mappings, The 'cpoptions' option will be
|
|
1140 temporarily set to its Vim default, to avoid the mappings to be
|
|
1141 misinterpreted. This makes the file incompatible with Vi, but makes sure it
|
|
1142 can be used with different terminals.
|
|
1143
|
|
1144 Only global mappings are stored, not mappings local to a buffer.
|
|
1145
|
|
1146 A common method is to use a default ".vimrc" file, make some modifications
|
|
1147 with ":map" and ":set" commands and write the modified file. First read the
|
|
1148 default ".vimrc" in with a command like ":source ~piet/.vimrc.Cprogs", change
|
|
1149 the settings and then save them in the current directory with ":mkvimrc!". If
|
|
1150 you want to make this file your default .vimrc, move it to your home directory
|
|
1151 (on Unix), s: (Amiga) or $VIM directory (MS-DOS). You could also use
|
|
1152 autocommands |autocommand| and/or modelines |modeline|.
|
|
1153
|
714
|
1154 *vimrc-option-example*
|
7
|
1155 If you only want to add a single option setting to your vimrc, you can use
|
|
1156 these steps:
|
|
1157 1. Edit your vimrc file with Vim.
|
|
1158 2. Play with the option until it's right. E.g., try out different values for
|
|
1159 'guifont'.
|
|
1160 3. Append a line to set the value of the option, using the expression register
|
|
1161 '=' to enter the value. E.g., for the 'guifont' option: >
|
|
1162 o:set guifont=<C-R>=&guifont<CR><Esc>
|
|
1163 < [<C-R> is a CTRL-R, <CR> is a return, <Esc> is the escape key]
|
714
|
1164 You need to escape special characters, esp. spaces.
|
7
|
1165
|
|
1166 Note that when you create a .vimrc file, this can influence the 'compatible'
|
|
1167 option, which has several side effects. See |'compatible'|.
|
|
1168 ":mkvimrc", ":mkexrc" and ":mksession" write the command to set or reset the
|
|
1169 'compatible' option to the output file first, because of these side effects.
|
|
1170
|
|
1171 ==============================================================================
|
|
1172 8. Views and Sessions *views-sessions*
|
|
1173
|
|
1174 This is introduced in sections |21.4| and |21.5| of the user manual.
|
|
1175
|
|
1176 *View* *view-file*
|
|
1177 A View is a collection of settings that apply to one window. You can save a
|
|
1178 View and when you restore it later, the text is displayed in the same way.
|
|
1179 The options and mappings in this window will also be restored, so that you can
|
|
1180 continue editing like when the View was saved.
|
|
1181
|
|
1182 *Session* *session-file*
|
|
1183 A Session keeps the Views for all windows, plus the global settings. You can
|
|
1184 save a Session and when you restore it later the window layout looks the same.
|
|
1185 You can use a Session to quickly switch between different projects,
|
|
1186 automatically loading the files you were last working on in that project.
|
|
1187
|
|
1188 Views and Sessions are a nice addition to viminfo-files, which are used to
|
|
1189 remember information for all Views and Sessions together |viminfo-file|.
|
|
1190
|
|
1191 You can quickly start editing with a previously saved View or Session with the
|
|
1192 |-S| argument: >
|
|
1193 vim -S Session.vim
|
|
1194 <
|
|
1195 All this is {not in Vi} and {not available when compiled without the
|
|
1196 |+mksession| feature}.
|
|
1197
|
|
1198 *:mks* *:mksession*
|
|
1199 :mks[ession][!] [file] Write a Vim script that restores the current editing
|
|
1200 session.
|
|
1201 When [!] is included an existing file is overwritten.
|
|
1202 When [file] is omitted "Session.vim" is used.
|
|
1203
|
|
1204 The output of ":mksession" is like ":mkvimrc", but additional commands are
|
|
1205 added to the file. Which ones depends on the 'sessionoptions' option. The
|
|
1206 resulting file, when executed with a ":source" command:
|
|
1207 1. Restores global mappings and options, if 'sessionoptions' contains
|
|
1208 "options". Script-local mappings will not be written.
|
|
1209 2. Restores global variables that start with an uppercase letter and contain
|
|
1210 at least one lowercase letter, if 'sessionoptions' contains "globals".
|
|
1211 3. Unloads all currently loaded buffers.
|
|
1212 4. Restores the current directory if 'sessionoptions' contains "curdir", or
|
|
1213 sets the current directory to where the Session file is if 'sessionoptions'
|
|
1214 contains "sesdir".
|
|
1215 5. Restores GUI Vim window position, if 'sessionoptions' contains "winpos".
|
|
1216 6. Restores screen size, if 'sessionoptions' contains "resize".
|
|
1217 7. Reloads the buffer list, with the last cursor positions. If
|
|
1218 'sessionoptions' contains "buffers" then all buffers are restored,
|
|
1219 including hidden and unloaded buffers. Otherwise only buffers in windows
|
|
1220 are restored.
|
|
1221 8. Restores all windows with the same layout. If 'sessionoptions' contains
|
1125
|
1222 "help", help windows are restored. If 'sessionoptions' contains "blank",
|
|
1223 windows editing a buffer without a name will be restored.
|
7
|
1224 If 'sessionoptions' contains "winsize" and no (help/blank) windows were
|
|
1225 left out, the window sizes are restored (relative to the screen size).
|
|
1226 Otherwise, the windows are just given sensible sizes.
|
|
1227 9. Restores the Views for all the windows, as with |:mkview|. But
|
|
1228 'sessionoptions' is used instead of 'viewoptions'.
|
|
1229 10. If a file exists with the same name as the Session file, but ending in
|
|
1230 "x.vim" (for eXtra), executes that as well. You can use *x.vim files to
|
|
1231 specify additional settings and actions associated with a given Session,
|
|
1232 such as creating menu items in the GUI version.
|
|
1233
|
|
1234 After restoring the Session, the full filename of your current Session is
|
|
1235 available in the internal variable "v:this_session" |this_session-variable|.
|
|
1236 An example mapping: >
|
|
1237 :nmap <F2> :wa<Bar>exe "mksession! " . v:this_session<CR>:so ~/sessions/
|
|
1238 This saves the current Session, and starts off the command to load another.
|
|
1239
|
841
|
1240 A session includes all tab pages, unless "tabpages" was removed from
|
|
1241 'sessionoptions'. |tab-page|
|
674
|
1242
|
574
|
1243 The |SessionLoadPost| autocmd event is triggered after a session file is
|
|
1244 loaded/sourced.
|
|
1245 *SessionLoad-variable*
|
|
1246 While the session file is loading the SessionLoad global variable is set to 1.
|
|
1247 Plugins can use this to postpone some work until the SessionLoadPost event is
|
|
1248 triggered.
|
|
1249
|
7
|
1250 *:mkvie* *:mkview*
|
|
1251 :mkvie[w][!] [file] Write a Vim script that restores the contents of the
|
|
1252 current window.
|
|
1253 When [!] is included an existing file is overwritten.
|
|
1254 When [file] is omitted or is a number from 1 to 9, a
|
843
|
1255 name is generated and 'viewdir' prepended. When the
|
|
1256 last directory name in 'viewdir' does not exist, this
|
|
1257 directory is created.
|
7
|
1258 An existing file is always overwritten then. Use
|
|
1259 |:loadview| to load this view again.
|
|
1260 When [file] is the name of a file ('viewdir' is not
|
|
1261 used), a command to edit the file is added to the
|
|
1262 generated file.
|
|
1263
|
|
1264 The output of ":mkview" contains these items:
|
|
1265 1. The argument list used in the window. When the global argument list is
|
|
1266 used it is reset to the global list.
|
|
1267 The index in the argument list is also restored.
|
|
1268 2. The file being edited in the window. If there is no file, the window is
|
|
1269 made empty.
|
|
1270 3. Restore mappings, abbreviations and options local to the window if
|
|
1271 'viewoptions' contains "options" or "localoptions". For the options it
|
|
1272 restores only values that are local to the current buffer and values local
|
|
1273 to the window.
|
|
1274 When storing the view as part of a session and "options" is in
|
|
1275 'sessionoptions', global values for local options will be stored too.
|
|
1276 4. Restore folds when using manual folding and 'viewoptions' contains
|
|
1277 "folds". Restore manually opened and closed folds.
|
|
1278 5. The scroll position and the cursor position in the file. Doesn't work very
|
|
1279 well when there are closed folds.
|
|
1280 6. The local current directory, if it is different from the global current
|
|
1281 directory.
|
|
1282
|
|
1283 Note that Views and Sessions are not perfect:
|
|
1284 - They don't restore everything. For example, defined functions, autocommands
|
|
1285 and ":syntax on" are not included. Things like register contents and
|
|
1286 command line history are in viminfo, not in Sessions or Views.
|
9
|
1287 - Global option values are only set when they differ from the default value.
|
7
|
1288 When the current value is not the default value, loading a Session will not
|
|
1289 set it back to the default value. Local options will be set back to the
|
|
1290 default value though.
|
|
1291 - Existing mappings will be overwritten without warning. An existing mapping
|
|
1292 may cause an error for ambiguity.
|
|
1293 - When storing manual folds and when storing manually opened/closed folds,
|
|
1294 changes in the file between saving and loading the view will mess it up.
|
|
1295 - The Vim script is not very efficient. But still faster than typing the
|
|
1296 commands yourself!
|
|
1297
|
|
1298 *:lo* *:loadview*
|
|
1299 :lo[adview] [nr] Load the view for the current file. When [nr] is
|
|
1300 omitted, the view stored with ":mkview" is loaded.
|
|
1301 When [nr] is specified, the view stored with ":mkview
|
|
1302 [nr]" is loaded.
|
|
1303
|
|
1304 The combination of ":mkview" and ":loadview" can be used to store up to ten
|
|
1305 different views of a file. These are remembered in the directory specified
|
|
1306 with the 'viewdir' option. The views are stored using the file name. If a
|
|
1307 file is renamed or accessed through a (symbolic) link the view will not be
|
|
1308 found.
|
|
1309
|
|
1310 You might want to clean up your 'viewdir' directory now and then.
|
|
1311
|
|
1312 To automatically save and restore views for *.c files: >
|
|
1313 au BufWinLeave *.c mkview
|
|
1314 au BufWinEnter *.c silent loadview
|
|
1315
|
|
1316 ==============================================================================
|
|
1317 9. The viminfo file *viminfo* *viminfo-file* *E136*
|
|
1318 *E575* *E576* *E577*
|
|
1319 If you exit Vim and later start it again, you would normally lose a lot of
|
|
1320 information. The viminfo file can be used to remember that information, which
|
|
1321 enables you to continue where you left off.
|
|
1322
|
|
1323 This is introduced in section |21.3| of the user manual.
|
|
1324
|
|
1325 The viminfo file is used to store:
|
|
1326 - The command line history.
|
|
1327 - The search string history.
|
|
1328 - The input-line history.
|
56
|
1329 - Contents of non-empty registers.
|
7
|
1330 - Marks for several files.
|
|
1331 - File marks, pointing to locations in files.
|
|
1332 - Last search/substitute pattern (for 'n' and '&').
|
|
1333 - The buffer list.
|
|
1334 - Global variables.
|
|
1335
|
|
1336 The viminfo file is not supported when the |+viminfo| feature has been
|
|
1337 disabled at compile time.
|
|
1338
|
|
1339 You could also use a Session file. The difference is that the viminfo file
|
|
1340 does not depend on what you are working on. There normally is only one
|
|
1341 viminfo file. Session files are used to save the state of a specific editing
|
|
1342 Session. You could have several Session files, one for each project you are
|
|
1343 working on. Viminfo and Session files together can be used to effectively
|
|
1344 enter Vim and directly start working in your desired setup. |session-file|
|
|
1345
|
|
1346 *viminfo-read*
|
|
1347 When Vim is started and the 'viminfo' option is non-empty, the contents of
|
|
1348 the viminfo file are read and the info can be used in the appropriate places.
|
1733
|
1349 The |v:oldfiles| variable is filled. The marks are not read in at startup
|
|
1350 (but file marks are). See |initialization| for how to set the 'viminfo'
|
|
1351 option upon startup.
|
7
|
1352
|
|
1353 *viminfo-write*
|
|
1354 When Vim exits and 'viminfo' is non-empty, the info is stored in the viminfo
|
|
1355 file (it's actually merged with the existing one, if one exists). The
|
|
1356 'viminfo' option is a string containing information about what info should be
|
|
1357 stored, and contains limits on how much should be stored (see 'viminfo').
|
|
1358
|
|
1359 Notes for Unix:
|
|
1360 - The file protection for the viminfo file will be set to prevent other users
|
|
1361 from being able to read it, because it may contain any text or commands that
|
|
1362 you have worked with.
|
|
1363 - If you want to share the viminfo file with other users (e.g. when you "su"
|
|
1364 to another user), you can make the file writable for the group or everybody.
|
|
1365 Vim will preserve this when writing new viminfo files. Be careful, don't
|
|
1366 allow just anybody to read and write your viminfo file!
|
|
1367 - Vim will not overwrite a viminfo file that is not writable by the current
|
|
1368 "real" user. This helps for when you did "su" to become root, but your
|
|
1369 $HOME is still set to a normal user's home directory. Otherwise Vim would
|
|
1370 create a viminfo file owned by root that nobody else can read.
|
1270
|
1371 - The viminfo file cannot be a symbolic link. This is to avoid security
|
|
1372 issues.
|
7
|
1373
|
|
1374 Marks are stored for each file separately. When a file is read and 'viminfo'
|
|
1375 is non-empty, the marks for that file are read from the viminfo file. NOTE:
|
|
1376 The marks are only written when exiting Vim, which is fine because marks are
|
|
1377 remembered for all the files you have opened in the current editing session,
|
|
1378 unless ":bdel" is used. If you want to save the marks for a file that you are
|
|
1379 about to abandon with ":bdel", use ":wv". The '[' and ']' marks are not
|
|
1380 stored, but the '"' mark is. The '"' mark is very useful for jumping to the
|
|
1381 cursor position when the file was last exited. No marks are saved for files
|
|
1382 that start with any string given with the "r" flag in 'viminfo'. This can be
|
|
1383 used to avoid saving marks for files on removable media (for MS-DOS you would
|
|
1384 use "ra:,rb:", for Amiga "rdf0:,rdf1:,rdf2:").
|
1733
|
1385 The |v:oldfiles| variable is filled with the file names that the viminfo file
|
|
1386 has marks for.
|
7
|
1387
|
|
1388 *viminfo-file-marks*
|
|
1389 Uppercase marks ('A to 'Z) are stored when writing the viminfo file. The
|
|
1390 numbered marks ('0 to '9) are a bit special. When the viminfo file is written
|
|
1391 (when exiting or with the ":wviminfo" command), '0 is set to the current cursor
|
|
1392 position and file. The old '0 is moved to '1, '1 to '2, etc. This
|
|
1393 resembles what happens with the "1 to "9 delete registers. If the current
|
|
1394 cursor position is already present in '0 to '9, it is moved to '0, to avoid
|
|
1395 having the same position twice. The result is that with "'0", you can jump
|
|
1396 back to the file and line where you exited Vim. To do that right away, try
|
|
1397 using this command: >
|
|
1398
|
|
1399 vim -c "normal '0"
|
|
1400
|
1623
|
1401 In a csh compatible shell you could make an alias for it: >
|
7
|
1402
|
|
1403 alias lvim vim -c '"'normal "'"0'"'
|
|
1404
|
1623
|
1405 For a bash-like shell: >
|
|
1406
|
|
1407 alias lvim='vim -c "normal '\''0"'
|
|
1408
|
7
|
1409 Use the "r" flag in 'viminfo' to specify for which files no marks should be
|
|
1410 remembered.
|
|
1411
|
|
1412
|
|
1413 VIMINFO FILE NAME *viminfo-file-name*
|
|
1414
|
|
1415 - The default name of the viminfo file is "$HOME/.viminfo" for Unix and OS/2,
|
|
1416 "s:.viminfo" for Amiga, "$HOME\_viminfo" for MS-DOS and Win32. For the last
|
|
1417 two, when $HOME is not set, "$VIM\_viminfo" is used. When $VIM is also not
|
|
1418 set, "c:\_viminfo" is used. For OS/2 "$VIM/.viminfo" is used when $HOME is
|
|
1419 not set and $VIM is set.
|
|
1420 - The 'n' flag in the 'viminfo' option can be used to specify another viminfo
|
|
1421 file name |'viminfo'|.
|
|
1422 - The "-i" Vim argument can be used to set another file name, |-i|. When the
|
|
1423 file name given is "NONE" (all uppercase), no viminfo file is ever read or
|
|
1424 written. Also not for the commands below!
|
|
1425 - For the commands below, another file name can be given, overriding the
|
|
1426 default and the name given with 'viminfo' or "-i" (unless it's NONE).
|
|
1427
|
|
1428
|
|
1429 CHARACTER ENCODING *viminfo-encoding*
|
|
1430
|
|
1431 The text in the viminfo file is encoded as specified with the 'encoding'
|
|
1432 option. Normally you will always work with the same 'encoding' value, and
|
|
1433 this works just fine. However, if you read the viminfo file with another
|
|
1434 value for 'encoding' than what it was written with, some of the text
|
|
1435 (non-ASCII characters) may be invalid. If this is unacceptable, add the 'c'
|
|
1436 flag to the 'viminfo' option: >
|
|
1437 :set viminfo+=c
|
|
1438 Vim will then attempt to convert the text in the viminfo file from the
|
|
1439 'encoding' value it was written with to the current 'encoding' value. This
|
|
1440 requires Vim to be compiled with the |+iconv| feature. Filenames are not
|
|
1441 converted.
|
|
1442
|
|
1443
|
|
1444 MANUALLY READING AND WRITING
|
|
1445
|
|
1446 Two commands can be used to read and write the viminfo file manually. This
|
|
1447 can be used to exchange registers between two running Vim programs: First
|
|
1448 type ":wv" in one and then ":rv" in the other. Note that if the register
|
|
1449 already contained something, then ":rv!" would be required. Also note
|
|
1450 however that this means everything will be overwritten with information from
|
|
1451 the first Vim, including the command line history, etc.
|
|
1452
|
|
1453 The viminfo file itself can be edited by hand too, although we suggest you
|
|
1454 start with an existing one to get the format right. It is reasonably
|
|
1455 self-explanatory once you're in there. This can be useful in order to
|
|
1456 create a second file, say "~/.my_viminfo" which could contain certain
|
|
1457 settings that you always want when you first start Vim. For example, you
|
|
1458 can preload registers with particular data, or put certain commands in the
|
|
1459 command line history. A line in your .vimrc file like >
|
|
1460 :rviminfo! ~/.my_viminfo
|
|
1461 can be used to load this information. You could even have different viminfos
|
|
1462 for different types of files (e.g., C code) and load them based on the file
|
|
1463 name, using the ":autocmd" command (see |:autocmd|).
|
|
1464
|
|
1465 *viminfo-errors*
|
|
1466 When Vim detects an error while reading a viminfo file, it will not overwrite
|
|
1467 that file. If there are more than 10 errors, Vim stops reading the viminfo
|
|
1468 file. This was done to avoid accidentally destroying a file when the file
|
|
1469 name of the viminfo file is wrong. This could happen when accidentally typing
|
|
1470 "vim -i file" when you wanted "vim -R file" (yes, somebody accidentally did
|
|
1471 that!). If you want to overwrite a viminfo file with an error in it, you will
|
|
1472 either have to fix the error, or delete the file (while Vim is running, so
|
|
1473 most of the information will be restored).
|
|
1474
|
|
1475 *:rv* *:rviminfo* *E195*
|
|
1476 :rv[iminfo][!] [file] Read from viminfo file [file] (default: see above).
|
|
1477 If [!] is given, then any information that is
|
1733
|
1478 already set (registers, marks, |v:oldfiles|, etc.)
|
|
1479 will be overwritten {not in Vi}
|
7
|
1480
|
|
1481 *:wv* *:wviminfo* *E137* *E138* *E574*
|
|
1482 :wv[iminfo][!] [file] Write to viminfo file [file] (default: see above).
|
|
1483 The information in the file is first read in to make
|
|
1484 a merge between old and new info. When [!] is used,
|
|
1485 the old information is not read first, only the
|
|
1486 internal info is written. If 'viminfo' is empty, marks
|
|
1487 for up to 100 files will be written.
|
|
1488 When you get error "E138: Can't write viminfo file"
|
|
1489 check that no old temp files were left behind (e.g.
|
|
1490 ~/.viminf*) and that you can write in the directory of
|
|
1491 the .viminfo file.
|
|
1492 {not in Vi}
|
|
1493
|
1733
|
1494 *:ol* *:oldfiles*
|
|
1495 :ol[dfiles] List the files that have marks stored in the viminfo
|
|
1496 file. This list is read on startup and only changes
|
|
1497 afterwards with ":rviminfo!". Also see |v:oldfiles|.
|
|
1498 The number can be used with |c_#<|.
|
|
1499 {not in Vi, only when compiled with the +eval feature}
|
|
1500
|
|
1501 :bro[wse] ol[dfiles][!]
|
|
1502 List file names as with |:oldfiles|, and then prompt
|
|
1503 for a number. When the number is valid that file from
|
|
1504 the list is edited.
|
|
1505 If you get the |press-enter| prompt you can press "q"
|
|
1506 and still get the prompt to enter a file number.
|
|
1507 Use ! to abondon a modified buffer. |abandon|
|
|
1508 {not when compiled with tiny or small features}
|
|
1509
|
7
|
1510 vim:tw=78:ts=8:ft=help:norl:
|