Add support for :winpos
[MacVim.git] / runtime / doc / pi_vimball.txt
blob885131e2923b08932867b0c2f9479af798e1e5a2
1 *pi_vimball.txt*        For Vim version 7.2.  Last change: 2009 Dec 28
3                                ----------------
4                                Vimball Archiver
5                                ----------------
7 Author:  Charles E. Campbell, Jr.  <NdrOchip@ScampbellPfamily.AbizM>
8           (remove NOSPAM from Campbell's email first)
9 Copyright: (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!
15 ==============================================================================
16 1. Contents                             *vba* *vimball* *vimball-contents*
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|
26 ==============================================================================
27 2. Vimball Introduction                                         *vimball-intro*
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.
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.
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.
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.
55 ==============================================================================
56 3. Vimball Manual                                       *vimball-manual*
58 MAKING A VIMBALL                                                *:MkVimball*
59                 :[range]MkVimball[!] filename [path]
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
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.
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|.
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).
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.
90 MAKING DIRECTORIES VIA VIMBALLS                         *g:vimball_mkdir*
92         First, the |mkdir()| command is tried (not all systems support it).
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.
105 CONTROLLING THE VIMBALL EXTRACTION DIRECTORY            *g:vimball_home*
107         You may override the use of the |'runtimepath'| by specifying a
108         variable, g:vimball_home.
110                                                         *vimball-extract*
111                 vim filename.vba
113         Simply editing a Vimball will cause Vimball.vim to tell the user to
114         source the file to extract its contents.
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.
120 LISTING FILES IN A VIMBALL                                      *:VimballList*
122                 :VimballList
124         This command will tell Vimball to list the files in the archive, along
125         with their lengths in lines.
127 MANUALLY INVOKING VIMBALL EXTRACTION                            *:UseVimball*
129                 :UseVimball [path]
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'|.
138 REMOVING A VIMBALL                                              *:RmVimball*
140                 :RmVimball vimballfile [path]
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.
150 PREVENTING LOADING
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>: >
156                 let g:loaded_vimballPlugin= 1
157                 let g:loaded_vimball      = 1
160 ==============================================================================
161 4. Vimball History                                      *vimball-history* {{{1
163         30 : Dec 08, 2008 * fnameescape() inserted to protect error
164                             messaging using corrupted filenames from
165                             causing problems
166                           * RmVimball supports filenames that would
167                             otherwise be considered to have "magic"
168                             characters (ie. Abc[1].vba)
169              Feb 18, 2009 * s:Escape(), g:vimball_shq, and g:netrw_shq
170                             removed (shellescape() used directly)
171              Oct 05, 2009 * (Nikolai Weibull) suggested that MkVimball
172                             be allowed to use slashes in the filename.
173         26 : May 27, 2008 * g:vimball_mkdir usage installed.  Makes the
174                             $HOME/.vim (or $HOME\vimfiles) directory if
175                             necessary.
176              May 30, 2008 * (tnx to Bill McCarthy) found and fixed a bug:
177                             vimball wasn't updating plugins to AsNeeded/
178                             when it should
179         25 : Mar 24, 2008 * changed vimball#Vimball() to recognize doc/*.??x
180                             files as help files, too.
181              Apr 18, 2008 * RmVimball command is now protected by saving and
182                             restoring settings -- in particular, acd was
183                             causing problems as reported by Zhang Shuhan
184         24 : Nov 15, 2007 * |g:vimball_path_escape| used by s:Path() to
185                             prevent certain characters from causing trouble
186         22 : Mar 21, 2007 * uses setlocal instead of set during BufEnter
187         21 : Nov 27, 2006 * (tnx to Bill McCarthy) vimball had a header
188                             handling problem and it now changes \s to /s
189         20 : Nov 20, 2006 * substitute() calls have all had the 'e' flag
190                             removed.
191         18 : Aug 01, 2006 * vimballs now use folding to easily display their
192                             contents.
193                           * if a user has AsNeeded/somefile, then vimball
194                             will extract plugin/somefile to the AsNeeded/
195                             directory
196         17 : Jun 28, 2006 * changes all \s to /s internally for Windows
197         16 : Jun 15, 2006 * A. Mechelynck's idea to allow users to specify
198                             installation root paths implemented for
199                             UseVimball, MkVimball, and RmVimball.
200                           * RmVimball implemented
201         15 : Jun 13, 2006 * bugfix
202         14 : May 26, 2006 * bugfixes
203         13 : May 01, 2006 * exists("&acd") used to determine if the acd
204                             option exists
205         12 : May 01, 2006 * bugfix - the |'acd'| option is not always defined
206         11 : Apr 27, 2006 * VimballList would create missing subdirectories that
207                             the vimball specified were needed.  Fixed.
208         10 : Apr 27, 2006 * moved all setting saving/restoration to a pair of
209                             functions.  Included some more settings in them
210                             which frequently cause trouble.
211         9  : Apr 26, 2006 * various changes to support Windows' predilection
212                             for backslashes and spaces in file and directory
213                             names.
214         7  : Apr 25, 2006 * bypasses foldenable
215                           * uses more exe and less norm! (:yank :put etc)
216                           * does better at insuring a "Press ENTER" prompt
217                             appears to keep its messages visible
218         4  : Mar 31, 2006 * BufReadPost seems to fire twice; BufReadEnter
219                             only fires once, so the "Source this file..."
220                             message is now issued only once.
221         3  : Mar 20, 2006 * removed query, now requires sourcing to be
222                             extracted (:so %).  Message to that effect
223                             included.
224                           * :VimballList  now shows files that would be
225                             extracted.
226         2  : Mar 20, 2006 * query, :UseVimball included
227         1  : Mar 20, 2006 * initial release
230 ==============================================================================
231 vim:tw=78:ts=8:ft=help:fdm=marker