README_extra.txt for version 7.1 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).
