README_extra.txt for version 7.0aa of Vim: Vi IMproved.

The extra archive of Vim is to be used in combination with the source archive
(vim-6.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-6.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.


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.

gui_amiga
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.
Gvim_vc.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).
