.TH VIM 1 "2024 Aug 12"
.SH NAME
vim \- Vi IMproved, a programmer's text editor
.SH SYNOPSIS
.br
.B vim
[options] [file ..]
.br
.B vim
[options] \-
.br
.B vim
[options] \-t tag
.br
.B vim
[options] \-q [errorfile]
.PP
.br
.B ex
.br
.B view
.br
.B gvim
.B gview
.B evim
.B eview
.br
.B rvim
.B rview
.B rgvim
.B rgview
.SH DESCRIPTION
.B Vim
is a text editor that is upwards compatible to Vi.
It can be used to edit all kinds of plain text.
It is especially useful for editing programs.
.PP
There are a lot of enhancements above Vi: multi level undo,
multi windows and buffers, syntax highlighting, command line
editing, filename completion, on-line help, visual selection, etc..
See ":help vi_diff.txt" for a summary of the differences between
.B Vim
and Vi.
.PP
While running
.B Vim
a lot of help can be obtained from the on-line help system, with the ":help"
command.
See the ON-LINE HELP section below.
.PP
Most often
.B Vim
is started to edit a single file with the command
.PP
	vim file
.PP
More generally
.B Vim
is started with:
.PP
	vim [options] [filelist]
.PP
If the filelist is missing, the editor will start with an empty buffer.
Otherwise exactly one out of the following four may be used to choose one or
more files to be edited.
.TP 12
file ..
A list of filenames.
The first one will be the current file and read into the buffer.
The cursor will be positioned on the first line of the buffer.
You can get to the other files with the ":next" command.
To edit a file that starts with a dash, precede the filelist with "\-\-".
.TP
\-
The file to edit is read from stdin.  Commands are read from stderr, which
should be a tty.
.TP
\-t {tag}
The file to edit and the initial cursor position depends on a "tag", a sort
of goto label.
{tag} is looked up in the tags file, the associated file becomes the current
file and the associated command is executed.
Mostly this is used for C programs, in which case {tag} could be a function
name.
The effect is that the file containing that function becomes the current file
and the cursor is positioned on the start of the function.
See ":help tag\-commands".
.TP
\-q [errorfile]
Start in quickFix mode.
The file [errorfile] is read and the first error is displayed.
If [errorfile] is omitted, the filename is obtained from the 'errorfile'
option (defaults to "AztecC.Err" for the Amiga, "errors.err" on other
systems).
Further errors can be jumped to with the ":cn" command.
See ":help quickfix".
.PP
.B Vim
behaves differently, depending on the name of the command (the executable may
still be the same file).
.TP 10
vim
The "normal" way, everything is default.
.TP
ex
Start in Ex mode.
Go to Normal mode with the ":vi" command.
Can also be done with the "\-e" argument.
.TP
view
Start in read-only mode.  You will be protected from writing the files.
Can also be done with the "\-R" argument.
.TP
gvim gview
The GUI version.
Starts a new window.
Can also be done with the "\-g" argument.
.TP
evim eview
The GUI version in easy mode.
Starts a new window.
Can also be done with the "\-y" argument.
.TP
rvim rview rgvim rgview
Like the above, but with restrictions.  It will not be possible to start shell
commands, or suspend
.B Vim.
Can also be done with the "\-Z" argument.
.SH OPTIONS
The options may be given in any order, before or after filenames.
Options without an argument can be combined after a single dash.
.TP 12
+[num]
For the first file the cursor will be positioned on line "num".
If "num" is missing, the cursor will be positioned on the last line.
.TP
+/{pat}
For the first file the cursor will be positioned in the line with the
first occurrence of {pat}.
See ":help search\-pattern" for the available search patterns.
.TP
+{command}
.TP
\-c {command}
{command} will be executed after the first file has been read.
{command} is interpreted as an Ex command.
If the {command} contains spaces it must be enclosed in double quotes (this
depends on the shell that is used).
Example: vim "+set si" main.c
.br
Note: You can use up to 10 "+" or "\-c" commands.
.TP
\-A
If
.B Vim
has been compiled with ARABIC support for editing right-to-left
oriented files and Arabic keyboard mapping, this option starts
.B Vim
in Arabic mode, i.e. 'arabic' is set.  Otherwise an error
message is given and
.B Vim
aborts.
.TP
\-b
Binary mode.
A few options will be set that makes it possible to edit a binary or
executable file.
.TP
\-C
Compatible.  Set the 'compatible' option.
This will make
.B Vim
behave mostly like Vi, even though a .vimrc file exists.
.TP
\-d
Start in diff mode.
There should between two to eight file name arguments.
.B Vim
will open all the files and show differences between them.
Works like vimdiff(1).
.TP
\-d {device}, \-dev {device}
Open {device} for use as a terminal.
Only on the Amiga.
Example:
"\-d con:20/30/600/150".
.TP
\-D
Debugging.  Go to debugging mode when executing the first command from a
script.
.TP
\-e
Start
.B Vim
in Ex mode, just like the executable was called "ex".
.TP
\-E
Start
.B Vim
in improved Ex mode, just like the executable was called "exim".
.TP
\-f
Foreground.  For the GUI version,
.B Vim
will not fork and detach from the shell it was started in.
On the Amiga,
.B Vim
is not restarted to open a new window.
This option should be used when
.B Vim
is executed by a program that will wait for the edit
session to finish (e.g. mail).
On the Amiga the ":sh" and ":!" commands will not work.
.TP
\-F
If
.B Vim
has been compiled with FKMAP support for editing right-to-left
oriented files and Farsi keyboard mapping, this option starts
.B Vim
in Farsi mode, i.e. 'fkmap' and 'rightleft' are set.
Otherwise an error message is given and
.B Vim
aborts.
.br
Note: Farsi support has been removed in patch 8.1.0932.
.TP
\-g
If
.B Vim
has been compiled with GUI support, this option enables the GUI.
If no GUI support was compiled in, an error message is given and
.B Vim
aborts.
.TP
\-H
If
.B Vim
has been compiled with RIGHTLEFT support for editing right-to-left
oriented files and Hebrew keyboard mapping, this option starts
.B Vim
in Hebrew mode, i.e. 'hkmap' and 'rightleft' are set.
Otherwise an error message is given and
.B Vim
aborts.
.TP
\-i {viminfo}
Specifies the filename to use when reading or writing the viminfo file,
instead of the default "~/.viminfo".
This can also be used to skip the use of the .viminfo file, by giving the name
"NONE".
.TP
\-l
Lisp mode.
Sets the 'lisp' and 'showmatch' options on.
.TP
\-L
Same as \-r.
.TP
\-m
Modifying files is disabled.
Resets the 'write' option.
You can still modify the buffer, but writing a file is not possible.
.TP
\-M
Modifications not allowed.  The 'modifiable' and 'write' options will be unset,
so that changes are not allowed and files can not be written.  Note that these
options can be set to enable making modifications.
.TP
\-n
No swap file will be used.
Recovery after a crash will be impossible.
Handy if you want to edit a file on a very slow medium (e.g. floppy).
Can also be done with ":set uc=0".
Can be undone with ":set uc=200".
.TP
\-N
No-compatible mode.  Resets the 'compatible' option.
This will make
.B Vim
behave a bit better, but less Vi compatible, even though a .vimrc file does
not exist.
.TP
\-nb
Become an editor server for NetBeans.  See the docs for details.
.TP
\-o[N]
Open N windows stacked.
When N is omitted, open one window for each file.
.TP
\-O[N]
Open N windows side by side.
When N is omitted, open one window for each file.
.TP
\-p[N]
Open N tab pages.
When N is omitted, open one tab page for each file.
.TP
\-P {parent-title}
Win32 GUI only: Specify the title of the parent application.  When possible, Vim
will run in an MDI window inside the application. {parent-title} must appear in
the window title of the parent application.  Make sure that it is specific
enough. Note that the implementation is still primitive.  It won't work with
all applications and the menu doesn't work.
.TP
\-r
List swap files, with information about using them for recovery.
.TP
\-r {file}
Recovery mode.
The swap file is used to recover a crashed editing session.
The swap file is a file with the same filename as the text file with ".swp"
appended.
See ":help recovery".
.TP
\-R
Read-only mode.
The 'readonly' option will be set.
You can still edit the buffer, but will be prevented from accidentally
overwriting a file.
If you do want to overwrite a file, add an exclamation mark to the Ex command,
as in ":w!".
The \-R option also implies the \-n option (see above).
The 'readonly' option can be reset with ":set noro".
See ":help 'readonly'".
.TP
\-s
Silent mode.  Only when started as "Ex" or when the "\-e" option was given
before the "\-s" option.
.TP
\-s {scriptin}
The script file {scriptin} is read.
The characters in the file are interpreted as if you had typed them.
The same can be done with the command ":source! {scriptin}".
If the end of the file is reached before the editor exits, further characters
are read from the keyboard.
.TP
\-S {file}
{file} will be sourced after the first file has been read.
This is equivalent to \-c "source {file}".
{file} cannot start with '\-'.
If {file} is omitted "Session.vim" is used (only works when \-S is the last
argument).
.TP
\-T {terminal}
Tells
.B Vim
the name of the terminal you are using.
Only required when the automatic way doesn't work.
Should be a terminal known to
.B Vim
(builtin) or defined in the termcap or terminfo file.
.TP
\-u {vimrc}
Use the commands in the file {vimrc} for initializations.
All the other initializations are skipped.
Use this to edit a special kind of files.
It can also be used to skip all initializations by giving the name "NONE".
See ":help initialization" within vim for more details.
.TP
\-U {gvimrc}
Use the commands in the file {gvimrc} for GUI initializations.
All the other GUI initializations are skipped.
It can also be used to skip all GUI initializations by giving the name "NONE".
See ":help gui\-init" within vim for more details.
.TP
\-v
Start
.B Vim
in Vi mode, just like the executable was called "vi".  This only has effect
when the executable is called "ex".
.TP
\-V[N]
Verbose.  Give messages about which files are sourced and for reading and
writing a viminfo file.  The optional number N is the value for 'verbose'.
Default is 10.
.TP
\-V[N]{filename}
Like \-V and set 'verbosefile' to {filename}.  The result is that messages are
not displayed but written to the file {filename}.  {filename} must not start
with a digit.
.TP
\-w{number}
Set the 'window' option to {number}.
.TP
\-w {scriptout}
All the characters that you type are recorded in the file
{scriptout}, until you exit
.B Vim.
This is useful if you want to create a script file to be used with "vim \-s" or
":source!".
If the {scriptout} file exists, characters are appended.
.TP
\-W {scriptout}
Like \-w, but an existing file is overwritten.
.TP
\-x
If
.B Vim
has been compiled with encryption support, use encryption when writing files.
Will prompt for a crypt key.
.TP
\-X
Don't connect to the X server.  Shortens startup time in a terminal, but the
window title and clipboard will not be used.
.TP
\-y
Start
.B Vim
in easy mode, just like the executable was called "evim" or "eview".
Makes
.B Vim
behave like a click-and-type editor.
.TP
\-Z
Restricted mode.  Works like the executable starts with "r".
.TP
\-\-
Denotes the end of the options.
Arguments after this will be handled as a file name.
This can be used to edit a filename that starts with a '\-'.
.TP
\-\-clean
Do not use any personal configuration (vimrc, plugins, etc.).  Useful to see if
a problem reproduces with a clean Vim setup.
.TP
\-\-cmd {command}
Like using "\-c", but the command is executed just before
processing any vimrc file.
You can use up to 10 of these commands, independently from "\-c" commands.
.TP
\-\-echo\-wid
GTK GUI only: Echo the Window ID on stdout.
.TP
\-\-gui\-dialog\-file {name}
When using the GUI, instead of showing a dialog, write the title and message of
the dialog to file {name}.  The file is created or appended to.  Only useful
for testing, to avoid that the test gets stuck on a dialog that can't be seen.
Without the GUI the argument is ignored.
.TP
\-\-help, \-h, \-?
Give a bit of help about the command line arguments and options.
After this
.B Vim
exits.
.TP
\-\-literal
Take file name arguments literally, do not expand wildcards.  This has no
effect on Unix where the shell expands wildcards.
.TP
\-\-log {filename}
If
.B Vim
has been compiled with eval and channel feature, start logging and write
entries to {filename}. This works like calling
.I ch_logfile({filename}, 'ao')
very early during startup.
.TP
\-\-nofork
Foreground.  For the GUI version,
.B Vim
will not fork and detach from the shell it was started in.
.TP
\-\-noplugin
Skip loading plugins.  Implied by \-u NONE.
.TP
\-\-not\-a\-term
Tells
.B Vim
that the user knows that the input and/or output is not connected to a
terminal.  This will avoid the warning and the two second delay that would
happen.
.TP
\-\-remote
Connect to a Vim server and make it edit the files given in the rest of the
arguments.  If no server is found a warning is given and the files are edited
in the current Vim.
.TP
\-\-remote\-expr {expr}
Connect to a Vim server, evaluate {expr} in it and print the result on stdout.
.TP
\-\-remote\-send {keys}
Connect to a Vim server and send {keys} to it.
.TP
\-\-remote\-silent
As \-\-remote, but without the warning when no server is found.
.TP
\-\-remote\-wait
As \-\-remote, but Vim does not exit until the files have been edited.
.TP
\-\-remote\-wait\-silent
As \-\-remote\-wait, but without the warning when no server is found.
.TP
\-\-serverlist
List the names of all Vim servers that can be found.
.TP
\-\-servername {name}
Use {name} as the server name.  Used for the current Vim, unless used with a
\-\-remote argument, then it's the name of the server to connect to.
.TP
\-\-socketid {id}
GTK GUI only: Use the GtkPlug mechanism to run gVim in another window.
.TP
\-\-startuptime {file}
During startup write timing messages to the file {fname}.
.TP
\-\-ttyfail
When stdin or stdout is not a a terminal (tty) then exit right away.
.TP
\-\-version
Print version information and exit.
.TP
\-\-windowid {id}
Win32 GUI only: Make gVim try to use the window {id} as a parent, so that it
runs inside that window.
.SH ON-LINE HELP
Type ":help" in
.B Vim
to get started.
Type ":help subject" to get help on a specific subject.
For example: ":help ZZ" to get help for the "ZZ" command.
Use <Tab> and CTRL-D to complete subjects (":help cmdline\-completion").
Tags are present to jump from one place to another (sort of hypertext links,
see ":help").
All documentation files can be viewed in this way, for example
":help syntax.txt".
.SH FILES
.TP 15
/usr/local/share/vim/vim??/doc/*.txt
The
.B Vim
documentation files.
Use ":help doc\-file\-list" to get the complete list.
.br
.I vim??
is short version number, like vim91 for
.B Vim 9.1
.TP
/usr/local/share/vim/vim??/doc/tags
The tags file used for finding information in the documentation files.
.TP
/usr/local/share/vim/vim??/syntax/syntax.vim
System wide syntax initializations.
.TP
/usr/local/share/vim/vim??/syntax/*.vim
Syntax files for various languages.
.TP
/usr/local/share/vim/vimrc
System wide
.B Vim
initializations.
.TP
~/.vimrc, ~/.vim/vimrc, $XDG_CONFIG_HOME/vim/vimrc
Your personal
.B Vim
initializations (first one found is used).
.TP
/usr/local/share/vim/gvimrc
System wide gvim initializations.
.TP
~/.gvimrc, ~/.vim/gvimrc, $XDG_CONFIG_HOME/vim/gvimrc
Your personal 
.B gVim
initializations (first one found is used).
.TP
/usr/local/share/vim/vim??/optwin.vim
Script used for the ":options" command, a nice way to view and set options.
.TP
/usr/local/share/vim/vim??/menu.vim
System wide menu initializations for 
.B gVim.
.TP
/usr/local/share/vim/vim??/bugreport.vim
Script to generate a bug report.  See ":help bugs".
.TP
/usr/local/share/vim/vim??/filetype.vim
Script to detect the type of a file by its name.  See ":help 'filetype'".
.TP
/usr/local/share/vim/vim??/scripts.vim
Script to detect the type of a file by its contents.  See ":help 'filetype'".
.TP
/usr/local/share/vim/vim??/print/*.ps
Files used for PostScript printing.
.PP
For recent info read the VIM home page:
.br
<URL:http://www.vim.org/>
.SH SEE ALSO
vimtutor(1)
.SH AUTHOR
Most of
.B Vim
was made by Bram Moolenaar, with a lot of help from others.
See ":help credits" in
.B Vim.
.br
.B Vim
is based on Stevie, worked on by: Tim Thompson,
Tony Andrews and G.R. (Fred) Walter.
Although hardly any of the original code remains.
.SH BUGS
Probably.
See ":help todo" for a list of known problems.
.PP
Note that a number of things that may be regarded as bugs by some, are in fact
caused by a too-faithful reproduction of Vi's behaviour.
And if you think other things are bugs "because Vi does it differently",
you should take a closer look at the vi_diff.txt file (or type :help
vi_diff.txt when in Vim).
Also have a look at the 'compatible' and 'cpoptions' options.
