blob: bbc74988ca61f9cd63586df23be6f104b556f094 [file] [log] [blame]
Bram Moolenaar3b1db362013-08-10 15:00:24 +02001*pi_vimball.txt* For Vim version 7.4. Last change: 2012 Jan 17
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +00002
3 ----------------
4 Vimball Archiver
5 ----------------
6
7Author: Charles E. Campbell, Jr. <NdrOchip@ScampbellPfamily.AbizM>
8 (remove NOSPAM from Campbell's email first)
Bram Moolenaar6be7f872012-01-20 21:08:56 +01009Copyright: (c) 2004-2012 by Charles E. Campbell, Jr. *Vimball-copyright*
10 The VIM LICENSE (see |copyright|) applies to the files in this
11 package, including vimballPlugin.vim, vimball.vim, and pi_vimball.txt.
12 except use "vimball" instead of "VIM". Like anything else that's free,
13 vimball.vim and its associated files are provided *as is* and comes with
14 no warranty of any kind, either expressed or implied. No guarantees
15 of merchantability. No guarantees of suitability for any purpose. By
16 using this plugin, you agree that in no event will the copyright
17 holder be liable for any damages resulting from the use of this
18 software. Use at your own risk!
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +000019
20==============================================================================
Bram Moolenaar9964e462007-05-05 17:54:07 +0000211. Contents *vba* *vimball* *vimball-contents*
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +000022
23 1. Contents......................................: |vimball-contents|
Bram Moolenaar5302d9e2011-09-14 17:55:08 +020024 2. Vimball Introduction..........................: |vimball-intro|
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000025 3. Vimball Manual................................: |vimball-manual|
Bram Moolenaar9964e462007-05-05 17:54:07 +000026 MkVimball.....................................: |:MkVimball|
27 UseVimball....................................: |:UseVimball|
28 RmVimball.....................................: |:RmVimball|
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000029 4. Vimball History...............................: |vimball-history|
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +000030
31
32==============================================================================
Bram Moolenaar3577c6f2008-06-24 21:16:56 +0000332. Vimball Introduction *vimball-intro*
34
35 Vimball is intended to make life simpler for users of plugins. All
36 a user needs to do with a vimball is: >
37 vim someplugin.vba
38 :so %
39 :q
40< and the plugin and all its components will be installed into their
41 appropriate directories. Note that one doesn't need to be in any
42 particular directory when one does this. Plus, any help for the
43 plugin will also be automatically installed.
44
45 If a user has decided to use the AsNeeded plugin, vimball is smart
46 enough to put scripts nominally intended for .vim/plugin/ into
47 .vim/AsNeeded/ instead.
48
49 Removing a plugin that was installed with vimball is really easy: >
50 vim
51 :RmVimball someplugin
52< This operation is not at all easy for zips and tarballs, for example.
53
54 Vimball examines the user's |'runtimepath'| to determine where to put
55 the scripts. The first directory mentioned on the runtimepath is
56 usually used if possible. Use >
57 :echo &rtp
58< to see that directory.
59
60
61==============================================================================
623. Vimball Manual *vimball-manual*
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +000063
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +010064MAKING A VIMBALL *:MkVimball*
Bram Moolenaar9964e462007-05-05 17:54:07 +000065 :[range]MkVimball[!] filename [path]
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +000066
Bram Moolenaar9964e462007-05-05 17:54:07 +000067 The range is composed of lines holding paths to files to be included
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000068 in your new vimball, omitting the portion of the paths that is
69 normally specified by the runtimepath (|'rtp'|). As an example: >
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +000070 plugin/something.vim
71 doc/something.txt
Bram Moolenaar9964e462007-05-05 17:54:07 +000072< using >
73 :[range]MkVimball filename
74<
75 on this range of lines will create a file called "filename.vba" which
76 can be used by Vimball.vim to re-create these files. If the
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +000077 "filename.vba" file already exists, then MkVimball will issue a
78 warning and not create the file. Note that these paths are relative
79 to your .vim (vimfiles) directory, and the files should be in that
Bram Moolenaar9964e462007-05-05 17:54:07 +000080 directory. The vimball plugin normally uses the first |'runtimepath'|
81 directory that exists as a prefix; don't use absolute paths, unless
82 the user has specified such a path.
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +000083
84 If you use the exclamation point (!), then MkVimball will create the
85 "filename.vba" file, overwriting it if it already exists. This
86 behavior resembles that for |:w|.
87
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +010088 If you wish to force slashes into the filename, that can also be done
89 by using the exclamation mark (ie. :MkVimball! path/filename).
90
91 The tip at http://vim.wikia.com/wiki/Using_VimBall_with_%27Make%27
92 has a good idea on how to automate the production of vimballs using
93 make.
94
95
96MAKING DIRECTORIES VIA VIMBALLS *g:vimball_mkdir*
97
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000098 First, the |mkdir()| command is tried (not all systems support it).
99
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100100 If it doesn't exist, then if g:vimball_mkdir doesn't exist, it is set
101 as follows: >
Bram Moolenaar3577c6f2008-06-24 21:16:56 +0000102 |g:netrw_local_mkdir|, if it exists
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100103 "mkdir" , if it is executable
104 "makedir" , if it is executable
105 Otherwise , it is undefined.
106< One may explicitly specify the directory making command using
Bram Moolenaar3577c6f2008-06-24 21:16:56 +0000107 g:vimball_mkdir. This command is used to make directories that
108 are needed as indicated by the vimball.
109
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100110
111CONTROLLING THE VIMBALL EXTRACTION DIRECTORY *g:vimball_home*
112
Bram Moolenaar3577c6f2008-06-24 21:16:56 +0000113 You may override the use of the |'runtimepath'| by specifying a
114 variable, g:vimball_home.
115
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +0000116 *vimball-extract*
117 vim filename.vba
118
119 Simply editing a Vimball will cause Vimball.vim to tell the user to
120 source the file to extract its contents.
121
122 Extraction will only proceed if the first line of a putative vimball
123 file holds the "Vimball Archiver by Charles E. Campbell, Jr., Ph.D."
124 line.
125
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100126LISTING FILES IN A VIMBALL *:VimballList*
127
128 :VimballList
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000129
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +0000130 This command will tell Vimball to list the files in the archive, along
131 with their lengths in lines.
132
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100133MANUALLY INVOKING VIMBALL EXTRACTION *:UseVimball*
134
135 :UseVimball [path]
Bram Moolenaar9964e462007-05-05 17:54:07 +0000136
137 This command is contained within the vimball itself; it invokes the
138 vimball#Vimball() routine which is responsible for unpacking the
139 vimball. One may choose to execute it by hand instead of sourcing
140 the vimball; one may also choose to specify a path for the
141 installation, thereby overriding the automatic choice of the first
142 existing directory on the |'runtimepath'|.
143
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100144REMOVING A VIMBALL *:RmVimball*
145
146 :RmVimball vimballfile [path]
Bram Moolenaar9964e462007-05-05 17:54:07 +0000147
148 This command removes all files generated by the specified vimball
149 (but not any directories it may have made). One may choose a path
150 for de-installation, too (see |'runtimepath'|); otherwise, the
151 default is the first existing directory on the |'runtimepath'|.
152 To implement this, a file (.VimballRecord) is made in that directory
153 containing a record of what files need to be removed for all vimballs
154 used thus far.
155
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100156PREVENTING LOADING
157
158 If for some reason you don't want to be able to extract plugins
159 using vimballs: you may prevent the loading of vimball.vim by
160 putting the following two variables in your <.vimrc>: >
161
162 let g:loaded_vimballPlugin= 1
163 let g:loaded_vimball = 1
164<
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200165WINDOWS *vimball-windows*
166
167 Many vimball files are compressed with gzip. Windows, unfortunately,
168 does not come provided with a tool to decompress gzip'ped files.
169 Fortunately, there are a number of tools available for Windows users
170 to un-gzip files:
171>
172 Item Tool/Suite Free Website
173 ---- ---------- ---- -------
174 7zip tool y http://www.7-zip.org/
175 Winzip tool n http://www.winzip.com/downwz.htm
176 unxutils suite y http://unxutils.sourceforge.net/
177 cygwin suite y http://www.cygwin.com/
178 GnuWin32 suite y http://gnuwin32.sourceforge.net/
179 MinGW suite y http://www.mingw.org/
180<
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +0000181
182==============================================================================
Bram Moolenaar3577c6f2008-06-24 21:16:56 +00001834. Vimball History *vimball-history* {{{1
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +0000184
Bram Moolenaar15146672011-10-20 22:22:38 +0200185 34 : Sep 22, 2011 * "UseVimball path" now supports a non-full path by
186 prepending the current directory to it.
Bram Moolenaar251e1912011-06-19 05:09:16 +0200187 33 : Apr 02, 2011 * Gave priority to *.vmb over *.vba
188 * Changed silent! to sil! (shorter)
189 * Safed |'swf'| setting (during vimball extraction,
190 its now turned off)
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200191 32 : May 19, 2010 * (Christian Brabandt) :so someplugin.vba and
Bram Moolenaar251e1912011-06-19 05:09:16 +0200192 :so someplugin.vba.gz (and the other supported
193 compression types) now works
194 * (Jan Steffens) added support for xz compression
195 * fenc extraction was erroneously picking up the
196 end of the line number when no file encoding
197 was present. Fixed.
198 * By request, beginning the switchover from the vba
199 extension to vmb. Currently both are supported;
200 MkVimball, however, now will create *.vmb files.
201 Feb 11, 2011 * motoyakurotsu reported an error with vimball's
202 handling of zero-length files
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100203 30 : Dec 08, 2008 * fnameescape() inserted to protect error
204 messaging using corrupted filenames from
205 causing problems
206 * RmVimball supports filenames that would
207 otherwise be considered to have "magic"
208 characters (ie. Abc[1].vba)
209 Feb 18, 2009 * s:Escape(), g:vimball_shq, and g:netrw_shq
210 removed (shellescape() used directly)
211 Oct 05, 2009 * (Nikolai Weibull) suggested that MkVimball
212 be allowed to use slashes in the filename.
Bram Moolenaar3577c6f2008-06-24 21:16:56 +0000213 26 : May 27, 2008 * g:vimball_mkdir usage installed. Makes the
214 $HOME/.vim (or $HOME\vimfiles) directory if
215 necessary.
216 May 30, 2008 * (tnx to Bill McCarthy) found and fixed a bug:
217 vimball wasn't updating plugins to AsNeeded/
218 when it should
219 25 : Mar 24, 2008 * changed vimball#Vimball() to recognize doc/*.??x
220 files as help files, too.
221 Apr 18, 2008 * RmVimball command is now protected by saving and
222 restoring settings -- in particular, acd was
223 causing problems as reported by Zhang Shuhan
Bram Moolenaar945e2db2010-06-05 17:43:32 +0200224 24 : Nov 15, 2007 * g:vimball_path_escape used by s:Path() to
Bram Moolenaar3577c6f2008-06-24 21:16:56 +0000225 prevent certain characters from causing trouble
Bram Moolenaar251e1912011-06-19 05:09:16 +0200226 (defunct: |fnameescape()| and |shellescape()|
227 now used instead)
Bram Moolenaar7263a772007-05-10 17:35:54 +0000228 22 : Mar 21, 2007 * uses setlocal instead of set during BufEnter
Bram Moolenaar9964e462007-05-05 17:54:07 +0000229 21 : Nov 27, 2006 * (tnx to Bill McCarthy) vimball had a header
230 handling problem and it now changes \s to /s
231 20 : Nov 20, 2006 * substitute() calls have all had the 'e' flag
232 removed.
233 18 : Aug 01, 2006 * vimballs now use folding to easily display their
234 contents.
235 * if a user has AsNeeded/somefile, then vimball
236 will extract plugin/somefile to the AsNeeded/
237 directory
238 17 : Jun 28, 2006 * changes all \s to /s internally for Windows
Bram Moolenaarc236c162008-07-13 17:41:49 +0000239 16 : Jun 15, 2006 * A. Mechelynck's idea to allow users to specify
Bram Moolenaar9964e462007-05-05 17:54:07 +0000240 installation root paths implemented for
241 UseVimball, MkVimball, and RmVimball.
242 * RmVimball implemented
243 15 : Jun 13, 2006 * bugfix
244 14 : May 26, 2006 * bugfixes
Bram Moolenaard68071d2006-05-02 22:08:30 +0000245 13 : May 01, 2006 * exists("&acd") used to determine if the acd
246 option exists
247 12 : May 01, 2006 * bugfix - the |'acd'| option is not always defined
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +0000248 11 : Apr 27, 2006 * VimballList would create missing subdirectories that
Bram Moolenaar9964e462007-05-05 17:54:07 +0000249 the vimball specified were needed. Fixed.
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +0000250 10 : Apr 27, 2006 * moved all setting saving/restoration to a pair of
Bram Moolenaar9964e462007-05-05 17:54:07 +0000251 functions. Included some more settings in them
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +0000252 which frequently cause trouble.
Bram Moolenaar3577c6f2008-06-24 21:16:56 +0000253 9 : Apr 26, 2006 * various changes to support Windows' predilection
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000254 for backslashes and spaces in file and directory
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +0000255 names.
256 7 : Apr 25, 2006 * bypasses foldenable
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000257 * uses more exe and less norm! (:yank :put etc)
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +0000258 * does better at insuring a "Press ENTER" prompt
259 appears to keep its messages visible
260 4 : Mar 31, 2006 * BufReadPost seems to fire twice; BufReadEnter
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000261 only fires once, so the "Source this file..."
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +0000262 message is now issued only once.
263 3 : Mar 20, 2006 * removed query, now requires sourcing to be
Bram Moolenaar9964e462007-05-05 17:54:07 +0000264 extracted (:so %). Message to that effect
Bram Moolenaar25e2c9e2006-04-27 21:40:34 +0000265 included.
266 * :VimballList now shows files that would be
267 extracted.
268 2 : Mar 20, 2006 * query, :UseVimball included
269 1 : Mar 20, 2006 * initial release
270
271
272==============================================================================
273vim:tw=78:ts=8:ft=help:fdm=marker