pi_vimball.txt (9463B)
1 *pi_vimball.txt* For Vim version 7.2. Last change: 2009 Dec 28 2 3 ---------------- 4 Vimball Archiver 5 ---------------- 6 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! 14 15 ============================================================================== 16 1. 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 ============================================================================== 27 2. 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 ============================================================================== 56 3. Vimball Manual *vimball-manual* 57 58 MAKING 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 90 MAKING 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 105 CONTROLLING 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 120 LISTING 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 127 MANUALLY 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 138 REMOVING 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 150 PREVENTING 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 < 159 160 ============================================================================== 161 4. Vimball History *vimball-history* {{{1 162 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 228 229 230 ============================================================================== 231 vim:tw=78:ts=8:ft=help:fdm=marker