README_extra.txt for version 7.2a of Vim: Vi IMproved.

The extra archive of Vim is to be used in combination with the source archive
(vim-7.0-src.tar.gz).  The extra archive is useless without it.

For more information, see the "README.txt" file that comes with the runtime
archive (vim-7.0-rt.tar.gz).  To be able to run Vim you MUST get the runtime
archive too!

The extra archive plus the source and runtime achives make up the complete
sources of Vim for all systems.


Some of the things that the extra archive contains:

Farsi		Files for the Farsi (persian) language.  If you don't know
		what Farsi is, this is not for you.

if_sniff	Interface to SNiFF.  If you don't know what SNiFF is, this is
		not for you.

os_amiga	Files for the Amiga port.

gui_riscos
os_riscos	Files for the RISC OS port.

gui_beos
os_beos		Files for the BeOS port.

os_msdos
os_dos		Files for the MS-DOS port.

gui_mac
os_mac		Files for the Mac port.

os_mint		Files for the Atari Mint port.

os_os2		Files for the OS/2 port.
tee		Extra program for OS/2.

os_vms		Files for the VMS port.

os_w32
os_win32	Files for the Win32 port.

gui_w32		Files for the Win32 GUI.
gui_w48		Files for the Win32 and Win16 GUI.
Make_mvc.mak	MS Visual C++ makefile for the Win32 GUI.
rgb.txt		File with color definitions for the Win32 GUI.

if_ole		OLE automation interface, for MS Windows 95 and NT.

VisVim		Integration of Win32 GUI with MS Visual Developer Studio.

GvimExt		DLL for the "Edit with Vim" context menu entry

nsis		NSIS script to build the self-installing MS-Windows exe

*.man		Preprocessed manual pages.

file_select.vim	Vim script to browse directories (Unix only).
