README file for Vim - Vi IMproved
---------------------------------
Vim is an almost 100% compatible version of the UNIX editor Vi. Many new
features have been added: Multi level undo, syntax highlighting, command line
history, filename completion, block operations, etc. Those who don't know Vi
can probably skip this message, unless you are prepared to learn something new
and useful. Vim is especially recommended for editing programs.
Vim runs on almost any Unix flavor, MS-DOS, MS-Windows 3.1, MS-Windows
95/98/NT, OS/2, Atari MiNT, BeOS, VMS, RISC OS, Macintosh and Amiga.
For more information: http://www.vim.org.
Features
--------
The most interesting features above Vi (there are a whole lot more):
Vi compatible.
The 'compatible' option can make Vim work Vi-compatible or improved.
The 'cpoptions' option has flags to switch specific vi-compatibility
items on/off.
On-line help system.
Help is displayed in a window. Tags can be used to jump around
in the documentation (like hypertext links).
Mouse support.
The mouse is supported in an xterm and an MS-DOS console. It can be
used to position the cursor, select the Visual area, paste a register,
etc.
Graphical User Interface (GUI).
The GUI supports menu's, mouse, scrollbars, etc. On Unix with Motif,
Athena and GTK interface. Also for MS-Windows, BeOS, Macintosh, RISC
OS and Amiga.
Multi-windows and multi-buffers
Edit several files at the same time. They can be displayed in
multiple windows. Works in a terminal just like in a GUI.
Command line editing.
Full editability of the command line. A history for commands and
search strings. Completion for file names, tags, help, buffer names
and many other items.
Multi level undo.
The number of undo levels is only restricted by available memory.
Syntax highlighting.
Programmable highlighting allows many languages to be colored. Syntax
files for more than 150 languages are included. Colors can be
changed. You can add your own syntax files.
Indenting for C programs and other languages.
Automatic indenting while inserting text. Configurable through an
option for C and with a script for other languages.
The "=" operator can be used to indent specific lines. Formatting of
comments (also for other languages and e-mail).
Searching for words in include files.
Commands to search for a word in the current file and in included
files. List the first match, list all matches or jump to a match.
Quickly find out where a define, function of variable is declared.
Visual area selection.
Select an area with normal movement commands and then apply an
operator on it. Allows selecting characters, lines and rectangular
blocks.
Word completion in Insert mode.
Commands to complete the word before the cursor in Insert mode.
Matches can be found in the current file, included files and/or
dictionaries.
Diff mode.
View the differences between two or three versions of the same file
with highlighting.
Move differences to merge files.
Automatic commands.
Commands can be automatically executed when reading a file, writing a
file, jumping to another buffer, etc., depending on the file name.
This is useful to set options and mappings for different file types.
This also makes it possible to edit compressed files.
Text objects.
After an operator and in Visual mode, text object commands can be used
to quickly select a word, line or paragraph. Delete the current
sentence with "ds". Format the current paragraph with "gqp".
Options.
A whole bunch of options. Command line completion can be used to get
the old value. An option window can be used to search for an option
and change its value.
Support for editing one-line paragraphs.
When a line is longer than the window width, it can be broken at a
space or other convenient position. Commands can be used to move the
cursor a screen line up/down.
Usage of key names.
Special keys all have a name like &lt;Up&gt;, &lt;End&gt;, etc. This name is used
for mappings, in listings, and many other things. This makes them
portable between terminals and systems.
Viminfo.
The command line history, marks, registers and other items can be
stored in a file that is automatically read on startup and written on
exit. You can continue editing where you left off.
Sessions.
Store a snapshot of the editor, and load it again later. Includes
open files and window sizes.
Tag support improved.
There is a tag stack, and a list of matching tags at each stack level.
This allows handling multiple tags with the same name.
More information.
A lot of error messages include the reason for the error. When a
command is half-finished, it can be shown in the status line.
The current mode can be shown in the status line.
Swap file.
Allows editing files of any size, only limited by disk space.
Gives a warning when editing the same file twice.
Makes it possible to recover an editing session after a system crash.
Edit-Compile-Fix cycle support.
Specify the format of the compiler error messages and Vim jumps to
their locations. Support for several error formats at the same time.
Flexible compilation.
Autoconf is used to adjust to different Unix flavors, editing the
Makefile is rarely required.
Folding.
Ranges of lines can be folded away to keep overview of the text.
Several mathods of selecting ranges are supported.
Miscellaneous features.
Incremental searching, shows the match while still typing the pattern.
A whole bunch of commands that start with "g": Goto declaration, show
ascii value of character under the cursor, go back to end of word,
reselect last Visual area, etc.
":retab" command. Can be used to change the size of a &lt;Tab&gt;, replace
spaces with a &lt;Tab&gt; or a &lt;Tab&gt; with spaces.
Use "Vim -r" to list any swap files that can be found.
Use the '-' register for deletes of less than one line.
Separate mappings for Normal, Visual, Insert and Command-line mode.
Digraphs, to enter special characters in an easy way.
Commands to search for #if/#endif and start/end of a comment.
":abclear" and ":mapclear": remove all abbreviations/mappings.
Check for last modification time of original file before overwriting.
VIM Distribution Sites
----------------------
See the MIRRORS file.
Unpacking
---------
SYSTEM FILE TYPE UNPACK WITH
Unix file.tar.gz gunzip -c file.tar.gz | tar xf -
Unix file.tar.bz2 bunzip2 -c file.tar.bz2 | tar xf -
Amiga file.tgz gzip -d file.tgz; tar xf file.tar
PC file.zip pkunzip -d file.zip
or: unzip file.zip
Mailing lists
-------------
There are five mailing lists for Vim.
See http://www.vim.org/maillist.php.
Reporting bugs
--------------
Send them to Bram Moolenaar: &lt;Bram@vim.org&gt;. Please be brief, all the time
spent on answering mail is subtracted from the time that is spent on improving
Vim! Always give a reproducable example and try to find out which settings or
other things influence the appearance of the bug. Try different machines if
possible. See ":help bugs" in Vim. Send me patches if you can!
If something needs discussing with other developers, send a message to the
vim-dev mailing list. You need to subscribe first.
Happy Vimming!
--
TALL KNIGHT: We are now no longer the Knights Who Say Ni!
ONE KNIGHT: Ni!
OTHERS: Sh!
ONE KNIGHT: (wispers) Sorry.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
\\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///