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 , , 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 , replace spaces with a or a 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: . 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 ///