A huge number of new features have been added in Vim 6. A few major ones
will be mentioned here. There are also a lot of minor improvements,
details matter to the Vim developers.
Vertically Split Windows
Windows can now be split vertically. This provides great flexibility for
displaying files in Vim. The example below shows the file explorer
in the left window and an edited file in the right window. Double
clicking on a file name in the file explorer edits that file in the
right window. Double clicking on a directory name moves to that
directory. You can have many splits at once, and edit files in
each of them.
Edit two (or three or four) files and Vim will show the differences.
Inserted and changed lines are highlighted. Ranges of lines without
changes are folded away. This way you can quickly see what changed. There
are commands to remove the differences.
A range of lines can be hidden, and one line displayed instead. This gives
a quick overview of what a file contains. In the example below there is a
fold for each C function. Most of them are closed and only show the name
of the function. A fold can be opened by clicking on the + in the column
on the left.
There are several ways of folding: with markers in the file, based on
indenting, manually or defined with an expression. This provides
convenient folding for many different purposes.
With so many new features the documentation had to be enhanced to make it
easier to learn using Vim. The user manual was written in such a way that
you can start using Vim or learn to use a specific feature. There are lots
of examples to make it easier to read and understand. Parts of the book
Vi Improved - Vim by Steve
Oualline were used. The user manual, like the book, is published under the
Open Publication License.
You can find the
User Manual, along with other documentation, at
Since Vim scripting has become quite powerful, many users have started
writing scripts. The new plugin feature makes it easy to start using such
a script: Just drop it in the right directory.
There are several types of plugins. Global plugins are used to add
commands for all situations. The file explorer, mentioned in the example
for vertical splits above, is actually implemented as a global plugin.
Filetype plugins are used to do settings for a specific type of file. For
example, the C filetype plugin sets the 'cindent' option; the "man" plugin
sets up mappings to be able to jump to another manual page.
A number of plugins are included in the distribution. The system
administrator can add plugins for all users. And you can add your own
personal plugins. The script repository
provides a central place to share plugins.
Automatic indenting is now available for many languages. Several are
included with the distribution. Just like with syntax highlighting, the
indenting is defined in a Vim script. This allows you to add indenting for
the language you are editing. You are invited to make your scripts
available to be included in the Vim distribution.
There are many languages in the world, and many ways to encode the
characters used in them. Unicode was designed to encode characters for all
the languages commonly used in the world. This allows using several
languages in the same file.
Vim supports editing Unicode in the GUI version and in terminals that
support UTF-8. Double-wide characters can be used, and up to two composing
characters are supported.
When reading a file, Vim can often detect how it is encoded and convert the
text when necessary. UTF-8 files are edited without conversion. Other
Unicode formats (16 bit and 32 bit) are converted internally. Conversion
is also used to edit files in just about any encoding, using an external