1*pi_vimball.txt*	For Vim version 7.3.  Last change: 2010 Apr 12
2
3			       ----------------
4			       Vimball Archiver
5			       ----------------
6
7Author:  Charles E. Campbell, Jr.  <NdrOchip@ScampbellPfamily.AbizM>
8	  (remove NOSPAM from Campbell's email first)
9Copyright: (c) 2004-2009 by Charles E. Campbell, Jr.	*Vimball-copyright*
10	   The VIM LICENSE applies to Vimball.vim, and Vimball.txt
11	   (see |copyright|) except use "Vimball" instead of "Vim".
12	   No warranty, express or implied.
13	   Use At-Your-Own-Risk!
14
15==============================================================================
161. Contents				*vba* *vimball* *vimball-contents*
17
18	1. Contents......................................: |vimball-contents|
19	3. Vimball Manual................................: |vimball-manual|
20	   MkVimball.....................................: |:MkVimball|
21	   UseVimball....................................: |:UseVimball|
22	   RmVimball.....................................: |:RmVimball|
23	4. Vimball History...............................: |vimball-history|
24
25
26==============================================================================
272. Vimball Introduction						*vimball-intro*
28
29	Vimball is intended to make life simpler for users of plugins.  All
30	a user needs to do with a vimball is: >
31		vim someplugin.vba
32		:so %
33		:q
34<	and the plugin and all its components will be installed into their
35	appropriate directories.  Note that one doesn't need to be in any
36	particular directory when one does this.  Plus, any help for the
37	plugin will also be automatically installed.
38
39	If a user has decided to use the AsNeeded plugin, vimball is smart
40	enough to put scripts nominally intended for .vim/plugin/ into
41	.vim/AsNeeded/ instead.
42
43	Removing a plugin that was installed with vimball is really easy: >
44		vim
45		:RmVimball someplugin
46<	This operation is not at all easy for zips and tarballs, for example.
47
48	Vimball examines the user's |'runtimepath'| to determine where to put
49	the scripts.  The first directory mentioned on the runtimepath is
50	usually used if possible.  Use >
51		:echo &rtp
52<	to see that directory.
53
54
55==============================================================================
563. Vimball Manual					*vimball-manual*
57
58MAKING A VIMBALL						*:MkVimball*
59		:[range]MkVimball[!] filename [path]
60
61	The range is composed of lines holding paths to files to be included
62	in your new vimball, omitting the portion of the paths that is
63	normally specified by the runtimepath (|'rtp'|).  As an example: >
64		plugin/something.vim
65		doc/something.txt
66<	using >
67		:[range]MkVimball filename
68<
69	on this range of lines will create a file called "filename.vba" which
70	can be used by Vimball.vim to re-create these files.  If the
71	"filename.vba" file already exists, then MkVimball will issue a
72	warning and not create the file.  Note that these paths are relative
73	to your .vim (vimfiles) directory, and the files should be in that
74	directory.  The vimball plugin normally uses the first |'runtimepath'|
75	directory that exists as a prefix; don't use absolute paths, unless
76	the user has specified such a path.
77
78	If you use the exclamation point (!), then MkVimball will create the
79	"filename.vba" file, overwriting it if it already exists.  This
80	behavior resembles that for |:w|.
81
82	If you wish to force slashes into the filename, that can also be done
83	by using the exclamation mark (ie. :MkVimball! path/filename).
84
85	The tip at http://vim.wikia.com/wiki/Using_VimBall_with_%27Make%27
86	has a good idea on how to automate the production of vimballs using
87	make.
88
89
90MAKING DIRECTORIES VIA VIMBALLS				*g:vimball_mkdir*
91
92	First, the |mkdir()| command is tried (not all systems support it).
93
94	If it doesn't exist, then if g:vimball_mkdir doesn't exist, it is set
95	as follows: >
96	  |g:netrw_local_mkdir|, if it exists
97	  "mkdir"              , if it is executable
98	  "makedir"            , if it is executable
99	  Otherwise            , it is undefined.
100<	One may explicitly specify the directory making command using
101	g:vimball_mkdir.  This command is used to make directories that
102	are needed as indicated by the vimball.
103
104
105CONTROLLING THE VIMBALL EXTRACTION DIRECTORY		*g:vimball_home*
106
107	You may override the use of the |'runtimepath'| by specifying a
108	variable, g:vimball_home.
109
110							*vimball-extract*
111		vim filename.vba
112
113	Simply editing a Vimball will cause Vimball.vim to tell the user to
114	source the file to extract its contents.
115
116	Extraction will only proceed if the first line of a putative vimball
117	file holds the "Vimball Archiver by Charles E. Campbell, Jr., Ph.D."
118	line.
119
120LISTING FILES IN A VIMBALL					*:VimballList*
121
122		:VimballList
123
124	This command will tell Vimball to list the files in the archive, along
125	with their lengths in lines.
126
127MANUALLY INVOKING VIMBALL EXTRACTION				*:UseVimball*
128
129		:UseVimball [path]
130
131	This command is contained within the vimball itself; it invokes the
132	vimball#Vimball() routine which is responsible for unpacking the
133	vimball.  One may choose to execute it by hand instead of sourcing
134	the vimball; one may also choose to specify a path for the
135	installation, thereby overriding the automatic choice of the first
136	existing directory on the |'runtimepath'|.
137
138REMOVING A VIMBALL						*:RmVimball*
139
140		:RmVimball vimballfile [path]
141
142	This command removes all files generated by the specified vimball
143	(but not any directories it may have made).  One may choose a path
144	for de-installation, too (see |'runtimepath'|); otherwise, the
145	default is the first existing directory on the |'runtimepath'|.
146	To implement this, a file (.VimballRecord) is made in that directory
147	containing a record of what files need to be removed for all vimballs
148	used thus far.
149
150PREVENTING LOADING
151
152	If for some reason you don't want to be able to extract plugins
153	using vimballs: you may prevent the loading of vimball.vim by
154	putting the following two variables in your <.vimrc>: >
155
156		let g:loaded_vimballPlugin= 1
157		let g:loaded_vimball      = 1
158<
159WINDOWS							*vimball-windows*
160
161	Many vimball files are compressed with gzip.  Windows, unfortunately,
162	does not come provided with a tool to decompress gzip'ped files.
163	Fortunately, there are a number of tools available for Windows users
164	to un-gzip files:
165>
166	    Item     Tool/Suite   Free   Website
167	    ----     ----------   ----   -------
168	    7zip        tool       y     http://www.7-zip.org/
169	    Winzip      tool       n     http://www.winzip.com/downwz.htm
170	    unxutils    suite      y     http://unxutils.sourceforge.net/
171	    cygwin      suite      y     http://www.cygwin.com/
172	    GnuWin32    suite      y     http://gnuwin32.sourceforge.net/
173	    MinGW       suite      y     http://www.mingw.org/
174<
175
176==============================================================================
1774. Vimball History					*vimball-history* {{{1
178
179	30 : Dec 08, 2008 * fnameescape() inserted to protect error
180			    messaging using corrupted filenames from
181			    causing problems
182			  * RmVimball supports filenames that would
183			    otherwise be considered to have "magic"
184			    characters (ie. Abc[1].vba)
185	     Feb 18, 2009 * s:Escape(), g:vimball_shq, and g:netrw_shq
186			    removed (shellescape() used directly)
187	     Oct 05, 2009 * (Nikolai Weibull) suggested that MkVimball
188			    be allowed to use slashes in the filename.
189	26 : May 27, 2008 * g:vimball_mkdir usage installed.  Makes the
190	                    $HOME/.vim (or $HOME\vimfiles) directory if
191			    necessary.
192	     May 30, 2008 * (tnx to Bill McCarthy) found and fixed a bug:
193			    vimball wasn't updating plugins to AsNeeded/
194			    when it should
195	25 : Mar 24, 2008 * changed vimball#Vimball() to recognize doc/*.??x
196			    files as help files, too.
197	     Apr 18, 2008 * RmVimball command is now protected by saving and
198	                    restoring settings -- in particular, acd was
199			    causing problems as reported by Zhang Shuhan
200	24 : Nov 15, 2007 * g:vimball_path_escape used by s:Path() to
201	                    prevent certain characters from causing trouble
202	22 : Mar 21, 2007 * uses setlocal instead of set during BufEnter
203	21 : Nov 27, 2006 * (tnx to Bill McCarthy) vimball had a header
204	                    handling problem and it now changes \s to /s
205	20 : Nov 20, 2006 * substitute() calls have all had the 'e' flag
206	                    removed.
207	18 : Aug 01, 2006 * vimballs now use folding to easily display their
208	                    contents.
209			  * if a user has AsNeeded/somefile, then vimball
210			    will extract plugin/somefile to the AsNeeded/
211			    directory
212	17 : Jun 28, 2006 * changes all \s to /s internally for Windows
213	16 : Jun 15, 2006 * A. Mechelynck's idea to allow users to specify
214			    installation root paths implemented for
215			    UseVimball, MkVimball, and RmVimball.
216			  * RmVimball implemented
217	15 : Jun 13, 2006 * bugfix
218	14 : May 26, 2006 * bugfixes
219	13 : May 01, 2006 * exists("&acd") used to determine if the acd
220			    option exists
221	12 : May 01, 2006 * bugfix - the |'acd'| option is not always defined
222	11 : Apr 27, 2006 * VimballList would create missing subdirectories that
223			    the vimball specified were needed.  Fixed.
224	10 : Apr 27, 2006 * moved all setting saving/restoration to a pair of
225			    functions.  Included some more settings in them
226			    which frequently cause trouble.
227	9  : Apr 26, 2006 * various changes to support Windows' predilection
228			    for backslashes and spaces in file and directory
229			    names.
230	7  : Apr 25, 2006 * bypasses foldenable
231			  * uses more exe and less norm! (:yank :put etc)
232			  * does better at insuring a "Press ENTER" prompt
233			    appears to keep its messages visible
234	4  : Mar 31, 2006 * BufReadPost seems to fire twice; BufReadEnter
235			    only fires once, so the "Source this file..."
236			    message is now issued only once.
237	3  : Mar 20, 2006 * removed query, now requires sourcing to be
238			    extracted (:so %).  Message to that effect
239			    included.
240			  * :VimballList  now shows files that would be
241			    extracted.
242	2  : Mar 20, 2006 * query, :UseVimball included
243	1  : Mar 20, 2006 * initial release
244
245
246==============================================================================
247vim:tw=78:ts=8:ft=help:fdm=marker
248