The macros in the maze, hanoi and urm directories can be used to test Vim for
vi compatibility.  They have been written for vi to show its unlimited
possibilities.	The life macros can be used for performance comparisons.

hanoi	Macros that solve the tower of hanoi problem.
life	Macros that run Conway's game of life.
maze	Macros that solve a maze (amazing!).
urm	Macros that simulate a simple computer: "Universal Register Machine"


The other files contain some handy utilities.  They also serve as examples for
how to use Vi and Vim functionality.

dvorak			for when you use a Dvorak keyboard
justify.vim		user function for justifying text
matchit.vim + matchit.txt  make % match if-fi, HTML tags, and much more
less.sh + less.vim	make Vim work like less (or more)
shellmenu.vim		menus for editing shell scripts in the GUI version
swapmous.vim		swap left and right mouse buttons

This one is only for Unix.  It can be found in the extra archive:
file_select.vim		macros that make a handy file selector
