Vim documentation: pi_vimball (original) (raw)


main help file


Author: Charles E. Campbell, Jr. NdrOchip@ScampbellPfamily.AbizM (remove NOSPAM from Campbell's email first)

Copyright: (c) 2004-2009 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 * vba* * vimball* * vimball-contents*

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

==============================================================================

  1. Vimball Introduction * vimball-intro*

    Vimball is intended to make life simpler for users of plugins. All a user needs to do with a vimball is: vim someplugin.vba :so % :q and the plugin and all its components will be installed into their appropriate directories. Note that one doesn't need to be in any particular directory when one does this. Plus, any help for the plugin will also be automatically installed.

    If a user has decided to use the AsNeeded plugin, vimball is smart enough to put scripts nominally intended for .vim/plugin/ into .vim/AsNeeded/ instead.

    Removing a plugin that was installed with vimball is really easy: vim :RmVimball someplugin This operation is not at all easy for zips and tarballs, for example.

    Vimball examines the user's |'runtimepath'| to determine where to put the scripts. The first directory mentioned on the runtimepath is usually used if possible. Use :echo &rtp to see that directory.

==============================================================================

  1. Vimball Manual * vimball-manual*

MAKING A VIMBALL * :MkVimball* :[range]MkVimball[!] filename [path]

The range is composed of lines holding paths to files to be included
in your new [vimball](#vimball), omitting the portion of the paths that is
normally specified by the runtimepath (|['rtp'](options.html#'rtp')|).  As an example:
**plugin/something.vim**
**doc/something.txt**
 using
**:[range]MkVimball filename**

on this range of lines 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](#vimball) [plugin](usr%5F05.html#plugin) normally uses the first |['runtimepath'](options.html#'runtimepath')|
directory that exists [as](motion.html#as) a prefix; don't use absolute paths, unless
the user has specified such a path.

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](editing.html#:w)|.

If you wish to force slashes into the filename, that can also be done
by using the exclamation [mark](motion.html#mark) (ie. [:MkVimball](#:MkVimball)! path/filename).

The tip at http://vim.wikia.com/wiki/Using_VimBall_with_%27Make%27 has a good idea on how to automate the production of vimballs using make.

MAKING DIRECTORIES VIA VIMBALLS * g:vimball_mkdir*

First, the |[mkdir()](eval.html#mkdir%28%29)| command is tried (not all systems support it).

If it doesn't exist, then if [g:vimball_mkdir](#g:vimball%5Fmkdir) doesn't exist, it is set
[as](motion.html#as) follows:

|g:netrw_local_mkdir|, if it exists "mkdir" , if it is executable "makedir" , if it is executable Otherwise , it is undefined. One may explicitly specify the directory making command using g:vimball_mkdir. This command is used to make directories that are needed as indicated by the vimball.

CONTROLLING THE VIMBALL EXTRACTION DIRECTORY * g:vimball_home*

You may override the use of the |['runtimepath'](options.html#'runtimepath')| by specifying a
variable, [g:vimball_home](#g:vimball%5Fhome).


                        * **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](#vimball)
file holds the "Vimball Archiver by Charles [E](motion.html#E). Campbell, Jr., Ph.D."
line.

LISTING FILES IN A VIMBALL * :VimballList*

    [:VimballList](#:VimballList)

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

MANUALLY INVOKING VIMBALL EXTRACTION * :UseVimball*

    [:UseVimball](#:UseVimball) [path]

This command is contained within the [vimball](#vimball) itself; it invokes the
vimball#Vimball() routine which is responsible for unpacking the
[vimball](#vimball).  One may choose to execute it by hand instead of sourcing
the [vimball](#vimball); one may also choose to specify a path for the
installation, thereby overriding the automatic choice of the first
existing directory on the |['runtimepath'](options.html#'runtimepath')|.

REMOVING A VIMBALL * :RmVimball*

    [:RmVimball](#:RmVimball) vimballfile [path]

This command removes all files generated by the specified [vimball](#vimball)
(but not any directories it may have made).  One may choose a path
for de-installation, too (see |['runtimepath'](options.html#'runtimepath')|); otherwise, the
default is the first existing directory on the |['runtimepath'](options.html#'runtimepath')|.
To implement this, a file (.VimballRecord) is made in that directory
containing a record of what files need to be removed for all vimballs
used thus far.

PREVENTING LOADING

If for some reason you don't want to be able to extract plugins
using vimballs: you may prevent the loading of vimball.vim by
putting the following two [variables](eval.html#variables) in your <.vimrc>:

**let g:loaded_vimballPlugin= 1**
**let g:loaded_vimball      = 1**

WINDOWS * vimball-windows*

Many [vimball](#vimball) files are compressed with [gzip](pi%5Fgzip.html#gzip).  Windows, unfortunately,
does not come provided with a tool to decompress gzip'ped files.
Fortunately, there are a number of tools available for Windows users
to un-gzip files:

Item Tool/Suite Free Website ---- ---------- ---- ------- 7zip tool y http://www.7-zip.org/ Winzip tool n http://www.winzip.com/downwz.htm unxutils suite y http://unxutils.sourceforge.net/ cygwin suite y http://www.cygwin.com/ GnuWin32 suite y http://gnuwin32.sourceforge.net/ MinGW suite y http://www.mingw.org/

==============================================================================

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

    30 : Dec 08, 2008 * fnameescape() inserted to protect error messaging using corrupted filenames from causing problems * RmVimball supports filenames that would otherwise be considered to have "magic" characters (ie. Abc[1].vba) Feb 18, 2009 * s:Escape(), g:vimball_shq, and g:netrw_shq removed (shellescape() used directly) Oct 05, 2009 * (Nikolai Weibull) suggested that MkVimball be allowed to use slashes in the filename. 26 : May 27, 2008 * g:vimball_mkdir usage installed. Makes the HOME/.vim(orHOME/.vim (or HOME/.vim(orHOME\vimfiles) directory if necessary. May 30, 2008 * (tnx to Bill McCarthy) found and fixed a bug: vimball wasn't updating plugins to AsNeeded/ when it should 25 : Mar 24, 2008 * changed vimball#Vimball() to recognize doc/*.??x files as help files, too. Apr 18, 2008 * RmVimball command is now protected by saving and restoring settings -- in particular, acd was causing problems as reported by Zhang Shuhan 24 : Nov 15, 2007 * g:vimball_path_escape used by s:Path() to prevent certain characters from causing trouble 22 : Mar 21, 2007 * uses setlocal instead of set during BufEnter 21 : Nov 27, 2006 * (tnx to Bill McCarthy) vimball had a header handling problem and it now changes \s to /s 20 : Nov 20, 2006 * substitute() calls have all had the 'e' flag removed. 18 : Aug 01, 2006 * vimballs now use folding to easily display their contents. * if a user has AsNeeded/somefile, then vimball will extract plugin/somefile to the AsNeeded/ directory 17 : Jun 28, 2006 * changes all \s to /s internally for Windows 16 : Jun 15, 2006 * A. Mechelynck's idea to allow users to specify installation root paths implemented for UseVimball, MkVimball, and RmVimball. * RmVimball implemented 15 : Jun 13, 2006 * bugfix 14 : May 26, 2006 * bugfixes 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' predilection 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

============================================================================== top - main help file