blob: f26c130009118230348270a6927f0349794699ec [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001VIM(1) VIM(1)
2
3
4
5NAME
6 vim - Vi IMproved, a programmers text editor
7
8SYNOPSIS
9 vim [options] [file ..]
10 vim [options] -
11 vim [options] -t tag
12 vim [options] -q [errorfile]
13
14 ex
15 view
16 gvim gview evim eview
17 rvim rview rgvim rgview
18
19DESCRIPTION
20 Vim is a text editor that is upwards compatible to Vi. It can be used
21 to edit all kinds of plain text. It is especially useful for editing
22 programs.
23
24 There are a lot of enhancements above Vi: multi level undo, multi win-
25 dows and buffers, syntax highlighting, command line editing, filename
26 completion, on-line help, visual selection, etc.. See ":help
27 vi_diff.txt" for a summary of the differences between Vim and Vi.
28
29 While running Vim a lot of help can be obtained from the on-line help
30 system, with the ":help" command. See the ON-LINE HELP section below.
31
32 Most often Vim is started to edit a single file with the command
33
34 vim file
35
36 More generally Vim is started with:
37
38 vim [options] [filelist]
39
40 If the filelist is missing, the editor will start with an empty buffer.
41 Otherwise exactly one out of the following four may be used to choose
42 one or more files to be edited.
43
44 file .. A list of filenames. The first one will be the current
45 file and read into the buffer. The cursor will be posi-
46 tioned on the first line of the buffer. You can get to the
47 other files with the ":next" command. To edit a file that
48 starts with a dash, precede the filelist with "--".
49
50 - The file to edit is read from stdin. Commands are read
51 from stderr, which should be a tty.
52
53 -t {tag} The file to edit and the initial cursor position depends on
54 a "tag", a sort of goto label. {tag} is looked up in the
55 tags file, the associated file becomes the current file and
56 the associated command is executed. Mostly this is used
57 for C programs, in which case {tag} could be a function
58 name. The effect is that the file containing that function
59 becomes the current file and the cursor is positioned on
60 the start of the function. See ":help tag-commands".
61
62 -q [errorfile]
63 Start in quickFix mode. The file [errorfile] is read and
64 the first error is displayed. If [errorfile] is omitted,
65 the filename is obtained from the 'errorfile' option
66 (defaults to "AztecC.Err" for the Amiga, "errors.err" on
67 other systems). Further errors can be jumped to with the
68 ":cn" command. See ":help quickfix".
69
70 Vim behaves differently, depending on the name of the command (the exe-
71 cutable may still be the same file).
72
73 vim The "normal" way, everything is default.
74
75 ex Start in Ex mode. Go to Normal mode with the ":vi" command.
76 Can also be done with the "-e" argument.
77
78 view Start in read-only mode. You will be protected from writing
79 the files. Can also be done with the "-R" argument.
80
81 gvim gview
82 The GUI version. Starts a new window. Can also be done with
83 the "-g" argument.
84
85 evim eview
86 The GUI version in easy mode. Starts a new window. Can also
87 be done with the "-y" argument.
88
89 rvim rview rgvim rgview
90 Like the above, but with restrictions. It will not be possi-
91 ble to start shell commands, or suspend Vim. Can also be
92 done with the "-Z" argument.
93
94OPTIONS
95 The options may be given in any order, before or after filenames.
96 Options without an argument can be combined after a single dash.
97
98 +[num] For the first file the cursor will be positioned on line
99 "num". If "num" is missing, the cursor will be positioned
100 on the last line.
101
102 +/{pat} For the first file the cursor will be positioned on the
103 first occurrence of {pat}. See ":help search-pattern" for
104 the available search patterns.
105
106 +{command}
107
108 -c {command}
109 {command} will be executed after the first file has been
110 read. {command} is interpreted as an Ex command. If the
111 {command} contains spaces it must be enclosed in double
112 quotes (this depends on the shell that is used). Example:
113 Vim "+set si" main.c
114 Note: You can use up to 10 "+" or "-c" commands.
115
116 -S {file} {file} will be sourced after the first file has been read.
117 This is equivalent to -c "source {file}". {file} cannot
118 start with '-'. If {file} is omitted "Session.vim" is used
119 (only works when -S is the last argument).
120
121 --cmd {command}
122 Like using "-c", but the command is executed just before
123 processing any vimrc file. You can use up to 10 of these
124 commands, independently from "-c" commands.
125
126 -A If Vim has been compiled with ARABIC support for editing
127 right-to-left oriented files and Arabic keyboard mapping,
128 this option starts Vim in Arabic mode, i.e. 'arabic' is
129 set. Otherwise an error message is given and Vim aborts.
130
131 -b Binary mode. A few options will be set that makes it pos-
132 sible to edit a binary or executable file.
133
134 -C Compatible. Set the 'compatible' option. This will make
135 Vim behave mostly like Vi, even though a .vimrc file
136 exists.
137
138 -d Start in diff mode. There should be two or three file name
139 arguments. Vim will open all the files and show differ-
140 ences between them. Works like vimdiff(1).
141
142 -d {device} Open {device} for use as a terminal. Only on the Amiga.
143 Example: "-d con:20/30/600/150".
144
145 -D Debugging. Go to debugging mode when executing the first
146 command from a script.
147
148 -e Start Vim in Ex mode, just like the executable was called
149 "ex".
150
151 -E Start Vim in improved Ex mode, just like the executable was
152 called "exim".
153
154 -f Foreground. For the GUI version, Vim will not fork and
155 detach from the shell it was started in. On the Amiga, Vim
156 is not restarted to open a new window. This option should
157 be used when Vim is executed by a program that will wait
158 for the edit session to finish (e.g. mail). On the Amiga
159 the ":sh" and ":!" commands will not work.
160
161 --nofork Foreground. For the GUI version, Vim will not fork and
162 detach from the shell it was started in.
163
164 -F If Vim has been compiled with FKMAP support for editing
165 right-to-left oriented files and Farsi keyboard mapping,
166 this option starts Vim in Farsi mode, i.e. 'fkmap' and
167 'rightleft' are set. Otherwise an error message is given
168 and Vim aborts.
169
170 -g If Vim has been compiled with GUI support, this option
171 enables the GUI. If no GUI support was compiled in, an
172 error message is given and Vim aborts.
173
174 -h Give a bit of help about the command line arguments and
175 options. After this Vim exits.
176
177 -H If Vim has been compiled with RIGHTLEFT support for editing
178 right-to-left oriented files and Hebrew keyboard mapping,
179 this option starts Vim in Hebrew mode, i.e. 'hkmap' and
180 'rightleft' are set. Otherwise an error message is given
181 and Vim aborts.
182
183 -i {viminfo}
184 When using the viminfo file is enabled, this option sets
185 the filename to use, instead of the default "~/.viminfo".
186 This can also be used to skip the use of the .viminfo file,
187 by giving the name "NONE".
188
189 -L Same as -r.
190
191 -l Lisp mode. Sets the 'lisp' and 'showmatch' options on.
192
193 -m Modifying files is disabled. Resets the 'write' option.
194 You can still modify the buffer, but writing a file is not
195 possible.
196
197 -M Modifications not allowed. The 'modifiable' and 'write'
198 options will be unset, so that changes are not allowed and
199 files can not be written. Note that these options can be
200 set to enable making modifications.
201
202 -N No-compatible mode. Reset the 'compatible' option. This
203 will make Vim behave a bit better, but less Vi compatible,
204 even though a .vimrc file does not exist.
205
206 -n No swap file will be used. Recovery after a crash will be
207 impossible. Handy if you want to edit a file on a very
208 slow medium (e.g. floppy). Can also be done with ":set
209 uc=0". Can be undone with ":set uc=200".
210
211 -nb Become an editor server for NetBeans. See the docs for
212 details.
213
214 -o[N] Open N windows stacked. When N is omitted, open one window
215 for each file.
216
217 -O[N] Open N windows side by side. When N is omitted, open one
218 window for each file.
219
220 -R Read-only mode. The 'readonly' option will be set. You
221 can still edit the buffer, but will be prevented from acci-
222 dently overwriting a file. If you do want to overwrite a
223 file, add an exclamation mark to the Ex command, as in
224 ":w!". The -R option also implies the -n option (see
225 below). The 'readonly' option can be reset with ":set
226 noro". See ":help 'readonly'".
227
228 -r List swap files, with information about using them for
229 recovery.
230
231 -r {file} Recovery mode. The swap file is used to recover a crashed
232 editing session. The swap file is a file with the same
233 filename as the text file with ".swp" appended. See ":help
234 recovery".
235
236 -s Silent mode. Only when started as "Ex" or when the "-e"
237 option was given before the "-s" option.
238
239 -s {scriptin}
240 The script file {scriptin} is read. The characters in the
241 file are interpreted as if you had typed them. The same
242 can be done with the command ":source! {scriptin}". If the
243 end of the file is reached before the editor exits, further
244 characters are read from the keyboard.
245
246 -T {terminal}
247 Tells Vim the name of the terminal you are using. Only
248 required when the automatic way doesn't work. Should be a
249 terminal known to Vim (builtin) or defined in the termcap
250 or terminfo file.
251
252 -u {vimrc} Use the commands in the file {vimrc} for initializations.
253 All the other initializations are skipped. Use this to
254 edit a special kind of files. It can also be used to skip
255 all initializations by giving the name "NONE". See ":help
256 initialization" within vim for more details.
257
258 -U {gvimrc} Use the commands in the file {gvimrc} for GUI initializa-
259 tions. All the other GUI initializations are skipped. It
260 can also be used to skip all GUI initializations by giving
261 the name "NONE". See ":help gui-init" within vim for more
262 details.
263
264 -V[N] Verbose. Give messages about which files are sourced and
265 for reading and writing a viminfo file. The optional num-
266 ber N is the value for 'verbose'. Default is 10.
267
268 -v Start Vim in Vi mode, just like the executable was called
269 "vi". This only has effect when the executable is called
270 "ex".
271
272 -w {scriptout}
273 All the characters that you type are recorded in the file
274 {scriptout}, until you exit Vim. This is useful if you
275 want to create a script file to be used with "vim -s" or
276 ":source!". If the {scriptout} file exists, characters are
277 appended.
278
279 -W {scriptout}
280 Like -w, but an existing file is overwritten.
281
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000282 -x Use encryption when writing files. Will prompt for a crypt
283 key.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000284
285 -X Don't connect to the X server. Shortens startup time in a
286 terminal, but the window title and clipboard will not be
287 used.
288
289 -y Start Vim in easy mode, just like the executable was called
290 "evim" or "eview". Makes Vim behave like a click-and-type
291 editor.
292
293 -Z Restricted mode. Works like the executable starts with
294 "r".
295
296 -- Denotes the end of the options. Arguments after this will
297 be handled as a file name. This can be used to edit a
298 filename that starts with a '-'.
299
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000300 --echo-wid GTK GUI only: Echo the Window ID on stdout.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000301
302 --help Give a help message and exit, just like "-h".
303
304 --literal Take file name arguments literally, do not expand wild-
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000305 cards. This has no effect on Unix where the shell expands
306 wildcards.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000307
308 --noplugin Skip loading plugins. Implied by -u NONE.
309
310 --remote Connect to a Vim server and make it edit the files given in
311 the rest of the arguments. If no server is found a warning
312 is given and the files are edited in the current Vim.
313
314 --remote-expr {expr}
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000315 Connect to a Vim server, evaluate {expr} in it and print
Bram Moolenaar071d4272004-06-13 20:20:40 +0000316 the result on stdout.
317
318 --remote-send {keys}
319 Connect to a Vim server and send {keys} to it.
320
321 --remote-silent
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000322 As --remote, but without the warning when no server is
Bram Moolenaar071d4272004-06-13 20:20:40 +0000323 found.
324
325 --remote-wait
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000326 As --remote, but Vim does not exit until the files have
Bram Moolenaar071d4272004-06-13 20:20:40 +0000327 been edited.
328
329 --remote-wait-silent
330 As --remote-wait, but without the warning when no server is
331 found.
332
333 --serverlist
334 List the names of all Vim servers that can be found.
335
336 --servername {name}
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000337 Use {name} as the server name. Used for the current Vim,
Bram Moolenaar071d4272004-06-13 20:20:40 +0000338 unless used with a --remote argument, then it's the name of
339 the server to connect to.
340
341 --socketid {id}
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000342 GTK GUI only: Use the GtkPlug mechanism to run gvim in
Bram Moolenaar071d4272004-06-13 20:20:40 +0000343 another window.
344
345 --version Print version information and exit.
346
347ON-LINE HELP
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000348 Type ":help" in Vim to get started. Type ":help subject" to get help
349 on a specific subject. For example: ":help ZZ" to get help for the
350 "ZZ" command. Use <Tab> and CTRL-D to complete subjects (":help cmd-
351 line-completion"). Tags are present to jump from one place to another
Bram Moolenaar071d4272004-06-13 20:20:40 +0000352 (sort of hypertext links, see ":help"). All documentation files can be
353 viewed in this way, for example ":help syntax.txt".
354
355FILES
356 /usr/local/lib/vim/doc/*.txt
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000357 The Vim documentation files. Use ":help doc-file-list"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000358 to get the complete list.
359
360 /usr/local/lib/vim/doc/tags
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000361 The tags file used for finding information in the docu-
Bram Moolenaar071d4272004-06-13 20:20:40 +0000362 mentation files.
363
364 /usr/local/lib/vim/syntax/syntax.vim
365 System wide syntax initializations.
366
367 /usr/local/lib/vim/syntax/*.vim
368 Syntax files for various languages.
369
370 /usr/local/lib/vim/vimrc
371 System wide Vim initializations.
372
Bram Moolenaar05159a02005-02-26 23:04:13 +0000373 ~/.vimrc Your personal Vim initializations.
374
Bram Moolenaar071d4272004-06-13 20:20:40 +0000375 /usr/local/lib/vim/gvimrc
376 System wide gvim initializations.
377
Bram Moolenaar05159a02005-02-26 23:04:13 +0000378 ~/.gvimrc Your personal gvim initializations.
379
Bram Moolenaar071d4272004-06-13 20:20:40 +0000380 /usr/local/lib/vim/optwin.vim
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000381 Script used for the ":options" command, a nice way to
Bram Moolenaar071d4272004-06-13 20:20:40 +0000382 view and set options.
383
384 /usr/local/lib/vim/menu.vim
385 System wide menu initializations for gvim.
386
387 /usr/local/lib/vim/bugreport.vim
388 Script to generate a bug report. See ":help bugs".
389
390 /usr/local/lib/vim/filetype.vim
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000391 Script to detect the type of a file by its name. See
Bram Moolenaar071d4272004-06-13 20:20:40 +0000392 ":help 'filetype'".
393
394 /usr/local/lib/vim/scripts.vim
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000395 Script to detect the type of a file by its contents.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000396 See ":help 'filetype'".
397
398 /usr/local/lib/vim/*.ps
399 Files used for PostScript printing.
400
401 For recent info read the VIM home page:
402 <URL:http://www.vim.org/>
403
404SEE ALSO
405 vimtutor(1)
406
407AUTHOR
408 Most of Vim was made by Bram Moolenaar, with a lot of help from others.
409 See ":help credits" in Vim.
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000410 Vim is based on Stevie, worked on by: Tim Thompson, Tony Andrews and
411 G.R. (Fred) Walter. Although hardly any of the original code remains.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000412
413BUGS
414 Probably. See ":help todo" for a list of known problems.
415
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000416 Note that a number of things that may be regarded as bugs by some, are
417 in fact caused by a too-faithful reproduction of Vi's behaviour. And
418 if you think other things are bugs "because Vi does it differently",
419 you should take a closer look at the vi_diff.txt file (or type :help
420 vi_diff.txt when in Vim). Also have a look at the 'compatible' and
Bram Moolenaar071d4272004-06-13 20:20:40 +0000421 'cpoptions' options.
422
423
424
425 2002 Feb 22 VIM(1)