1VIM(1) General Commands Manual VIM(1) 2 3 4 5NAME 6 vim - Vi IMproved, a programmer's 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 (de‐ 66 faults to "AztecC.Err" for the Amiga, "errors.err" on other 67 systems). Further errors can be jumped to with the ":cn" 68 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. Op‐ 96 tions 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 in the 103 line with the first occurrence of {pat}. See ":help 104 search-pattern" for 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 ex‐ 136 ists. 137 138 -d Start in diff mode. There should between two to eight file 139 name arguments. Vim will open all the files and show dif‐ 140 ferences 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 de‐ 155 tach 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 de‐ 162 tach 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 en‐ 171 ables the GUI. If no GUI support was compiled in, an error 172 message is given and Vim aborts. 173 174 -h Give a bit of help about the command line arguments and op‐ 175 tions. 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 Specifies the filename to use when reading or writing the 185 viminfo file, instead of the default "~/.viminfo". This 186 can also be used to skip the use of the .viminfo file, by 187 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. Resets 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 de‐ 212 tails. 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 -p[N] Open N tab pages. When N is omitted, open one tab page for 221 each file. 222 223 -R Read-only mode. The 'readonly' option will be set. You 224 can still edit the buffer, but will be prevented from acci‐ 225 dentally overwriting a file. If you do want to overwrite a 226 file, add an exclamation mark to the Ex command, as in 227 ":w!". The -R option also implies the -n option (see 228 above). The 'readonly' option can be reset with ":set 229 noro". See ":help 'readonly'". 230 231 -r List swap files, with information about using them for re‐ 232 covery. 233 234 -r {file} Recovery mode. The swap file is used to recover a crashed 235 editing session. The swap file is a file with the same 236 filename as the text file with ".swp" appended. See ":help 237 recovery". 238 239 -s Silent mode. Only when started as "Ex" or when the "-e" 240 option was given before the "-s" option. 241 242 -s {scriptin} 243 The script file {scriptin} is read. The characters in the 244 file are interpreted as if you had typed them. The same 245 can be done with the command ":source! {scriptin}". If the 246 end of the file is reached before the editor exits, further 247 characters are read from the keyboard. 248 249 -T {terminal} 250 Tells Vim the name of the terminal you are using. Only re‐ 251 quired when the automatic way doesn't work. Should be a 252 terminal known to Vim (builtin) or defined in the termcap 253 or terminfo file. 254 255 -u {vimrc} Use the commands in the file {vimrc} for initializations. 256 All the other initializations are skipped. Use this to 257 edit a special kind of files. It can also be used to skip 258 all initializations by giving the name "NONE". See ":help 259 initialization" within vim for more details. 260 261 -U {gvimrc} Use the commands in the file {gvimrc} for GUI initializa‐ 262 tions. All the other GUI initializations are skipped. It 263 can also be used to skip all GUI initializations by giving 264 the name "NONE". See ":help gui-init" within vim for more 265 details. 266 267 -V[N] Verbose. Give messages about which files are sourced and 268 for reading and writing a viminfo file. The optional num‐ 269 ber N is the value for 'verbose'. Default is 10. 270 271 -v Start Vim in Vi mode, just like the executable was called 272 "vi". This only has effect when the executable is called 273 "ex". 274 275 -w {scriptout} 276 All the characters that you type are recorded in the file 277 {scriptout}, until you exit Vim. This is useful if you 278 want to create a script file to be used with "vim -s" or 279 ":source!". If the {scriptout} file exists, characters are 280 appended. 281 282 -W {scriptout} 283 Like -w, but an existing file is overwritten. 284 285 -x Use encryption when writing files. Will prompt for a crypt 286 key. 287 288 -X Don't connect to the X server. Shortens startup time in a 289 terminal, but the window title and clipboard will not be 290 used. 291 292 -y Start Vim in easy mode, just like the executable was called 293 "evim" or "eview". Makes Vim behave like a click-and-type 294 editor. 295 296 -Z Restricted mode. Works like the executable starts with 297 "r". 298 299 -- Denotes the end of the options. Arguments after this will 300 be handled as a file name. This can be used to edit a 301 filename that starts with a '-'. 302 303 --clean Do not use any personal configuration (vimrc, plugins, 304 etc.). Useful to see if a problem reproduces with a clean 305 Vim setup. 306 307 --echo-wid GTK GUI only: Echo the Window ID on stdout. 308 309 --help Give a help message and exit, just like "-h". 310 311 --literal Take file name arguments literally, do not expand wild‐ 312 cards. This has no effect on Unix where the shell expands 313 wildcards. 314 315 --noplugin Skip loading plugins. Implied by -u NONE. 316 317 --remote Connect to a Vim server and make it edit the files given in 318 the rest of the arguments. If no server is found a warning 319 is given and the files are edited in the current Vim. 320 321 --remote-expr {expr} 322 Connect to a Vim server, evaluate {expr} in it and print 323 the result on stdout. 324 325 --remote-send {keys} 326 Connect to a Vim server and send {keys} to it. 327 328 --remote-silent 329 As --remote, but without the warning when no server is 330 found. 331 332 --remote-wait 333 As --remote, but Vim does not exit until the files have 334 been edited. 335 336 --remote-wait-silent 337 As --remote-wait, but without the warning when no server is 338 found. 339 340 --serverlist 341 List the names of all Vim servers that can be found. 342 343 --servername {name} 344 Use {name} as the server name. Used for the current Vim, 345 unless used with a --remote argument, then it's the name of 346 the server to connect to. 347 348 --socketid {id} 349 GTK GUI only: Use the GtkPlug mechanism to run gvim in an‐ 350 other window. 351 352 --startuptime {file} 353 During startup write timing messages to the file {fname}. 354 355 --version Print version information and exit. 356 357ON-LINE HELP 358 Type ":help" in Vim to get started. Type ":help subject" to get help 359 on a specific subject. For example: ":help ZZ" to get help for the 360 "ZZ" command. Use <Tab> and CTRL-D to complete subjects (":help cmd‐ 361 line-completion"). Tags are present to jump from one place to another 362 (sort of hypertext links, see ":help"). All documentation files can be 363 viewed in this way, for example ":help syntax.txt". 364 365FILES 366 /usr/local/lib/vim/doc/*.txt 367 The Vim documentation files. Use ":help doc-file-list" 368 to get the complete list. 369 370 /usr/local/lib/vim/doc/tags 371 The tags file used for finding information in the docu‐ 372 mentation files. 373 374 /usr/local/lib/vim/syntax/syntax.vim 375 System wide syntax initializations. 376 377 /usr/local/lib/vim/syntax/*.vim 378 Syntax files for various languages. 379 380 /usr/local/lib/vim/vimrc 381 System wide Vim initializations. 382 383 ~/.vimrc Your personal Vim initializations. 384 385 /usr/local/lib/vim/gvimrc 386 System wide gvim initializations. 387 388 ~/.gvimrc Your personal gvim initializations. 389 390 /usr/local/lib/vim/optwin.vim 391 Script used for the ":options" command, a nice way to 392 view and set options. 393 394 /usr/local/lib/vim/menu.vim 395 System wide menu initializations for gvim. 396 397 /usr/local/lib/vim/bugreport.vim 398 Script to generate a bug report. See ":help bugs". 399 400 /usr/local/lib/vim/filetype.vim 401 Script to detect the type of a file by its name. See 402 ":help 'filetype'". 403 404 /usr/local/lib/vim/scripts.vim 405 Script to detect the type of a file by its contents. 406 See ":help 'filetype'". 407 408 /usr/local/lib/vim/print/*.ps 409 Files used for PostScript printing. 410 411 For recent info read the VIM home page: 412 <URL:http://www.vim.org/> 413 414SEE ALSO 415 vimtutor(1) 416 417AUTHOR 418 Most of Vim was made by Bram Moolenaar, with a lot of help from others. 419 See ":help credits" in Vim. 420 Vim is based on Stevie, worked on by: Tim Thompson, Tony Andrews and 421 G.R. (Fred) Walter. Although hardly any of the original code remains. 422 423BUGS 424 Probably. See ":help todo" for a list of known problems. 425 426 Note that a number of things that may be regarded as bugs by some, are 427 in fact caused by a too-faithful reproduction of Vi's behaviour. And 428 if you think other things are bugs "because Vi does it differently", 429 you should take a closer look at the vi_diff.txt file (or type :help 430 vi_diff.txt when in Vim). Also have a look at the 'compatible' and 431 'cpoptions' options. 432 433 434 435 2006 Apr 11 VIM(1) 436