*pi_vimball.txt*	For Vim version 7.0.  Last change: 2006 May 01

			       ----------------
			       Vimball Archiver
			       ----------------

Author:  Charles E. Campbell, Jr.  <NdrOchip@ScampbellPfamily.AbizM>
	  (remove NOSPAM from Campbell's email first)
Copyright: (c) 2004-2006 by Charles E. Campbell, Jr.	*Vimball-copyright*
	   The VIM LICENSE applies to Vimball.vim, and Vimball.txt
	   (see |copyright|) except use "Vimball" instead of "Vim".
	   No warranty, express or implied.
	   Use At-Your-Own-Risk!

==============================================================================
1. Contents					*vimball* *vimball-contents*

	1. Contents......................................: |vimball-contents|
	2. Vimball Manual................................: |vimball-manual|
	3. Vimball History...............................: |vimball-history|


==============================================================================
2. Vimball Manual					*vimball-manual*

							*:MkVimball*
		:[range]MkVimball[!] filename

	This command takes lines holding a path to files to be included in
	your vimball; as an example: >
		plugin/something.vim
		doc/something.txt
<	using MkVimball on this range will create a file called "filename.vba"
	which can be used by Vimball.vim to re-create these files.  If the
	"filename.vba" file already exists, then MkVimball will issue a
	warning and not create the file.  Note that these paths are relative
	to your .vim (vimfiles) directory, and the files should be in that
	directory.  The vimball plugin uses the first |'runtimepath'|directory
	that exists as a prefix; don't use absolute paths.

	If you use the exclamation point (!), then MkVimball will create the
	"filename.vba" file, overwriting it if it already exists.  This
	behavior resembles that for |:w|.

							*vimball-extract*
		vim filename.vba

	Simply editing a Vimball will cause Vimball.vim to tell the user to
	source the file to extract its contents.

	Extraction will only proceed if the first line of a putative vimball
	file holds the "Vimball Archiver by Charles E. Campbell, Jr., Ph.D."
	line.

		:VimballList				*vimball-vimballlist*

	This command will tell Vimball to list the files in the archive, along
	with their lengths in lines.


==============================================================================
3. Vimball History					*vimball-history* {{{1

	13 : May 01, 2006 * exists("&acd") used to determine if the acd
			    option exists
	12 : May 01, 2006 * bugfix - the |'acd'| option is not always defined
	11 : Apr 27, 2006 * VimballList would create missing subdirectories that
			    the vimball specified were needed.	Fixed.
	10 : Apr 27, 2006 * moved all setting saving/restoration to a pair of
			    functions.	Included some more settings in them
			    which frequently cause trouble.
	9  : Apr 26, 2006 * various changes to support Windows prediliction
			    for backslashes and spaces in file and directory
			    names.
	7  : Apr 25, 2006 * bypasses foldenable
			  * uses more exe and less norm! (:yank :put etc)
			  * does better at insuring a "Press ENTER" prompt
			    appears to keep its messages visible
	4  : Mar 31, 2006 * BufReadPost seems to fire twice; BufReadEnter
			    only fires once, so the "Source this file..."
			    message is now issued only once.
	3  : Mar 20, 2006 * removed query, now requires sourcing to be
			    extracted (:so %).	Message to that effect
			    included.
			  * :VimballList  now shows files that would be
			    extracted.
	2  : Mar 20, 2006 * query, :UseVimball included
	1  : Mar 20, 2006 * initial release


==============================================================================
vim:tw=78:ts=8:ft=help:fdm=marker
