git-svn-id: https://vimsuite.svn.sourceforge.net/svnroot/vimsuite/trunk@133 eb2d0018-73a3-4aeb-bfe9-1def61c9ec69
329 lines
14 KiB
Plaintext
329 lines
14 KiB
Plaintext
*getlatestvimscripts.txt* Get the Latest VimScripts Dec 23, 2005
|
|
|
|
Authors: Charles E. Campbell, Jr. <NdrOchip@ScampbellPfamilyA.Mbiz>
|
|
(remove NOSPAM from the email address)
|
|
*GetLatestVimScripts-copyright*
|
|
Copyright: (c) 2004-2005 by Charles E. Campbell, Jr.
|
|
The VIM LICENSE applies to GetLatestVimScripts.vim and
|
|
GetLatestVimScripts.txt (see |copyright|) except use
|
|
"GetLatestVimScripts" instead of "Vim".
|
|
No warranty, express or implied. Use At-Your-Own-Risk.
|
|
|
|
|
|
==============================================================================
|
|
1. Contents *glvs-contents*
|
|
|
|
1. Contents...........................................: |glvs-contents|
|
|
2. GetLatestVimScripts -- Getting Started.............: |glvs-install|
|
|
3. GetLatestVimScripts Usage..........................: |glvs|
|
|
4. GetLatestVimScripts Data File......................: |glvs-data|
|
|
5. GetLatestVimScripts Plugins........................: |glvs-plugins|
|
|
6. GetLatestVimScripts AutoInstall....................: |glvs-autoinstall|
|
|
7. GetLatestVimScripts Algorithm......................: |glvs-alg|
|
|
8. GetLatestVimScripts History........................: |glvs-hist|
|
|
|
|
|
|
==============================================================================
|
|
2. GetLatestVimScripts -- Getting Started *getlatestvimscripts-start*
|
|
*getlatestvimscripst-install* *glvs-install*
|
|
|
|
The last step, that of renaming/moving the GetLatestVimScripts.dist
|
|
file, is for those who have just downloaded GetLatestVimScripts.tar.bz2
|
|
for the first time. The GetLatestVimScripts.dist file serves as an
|
|
example and a template for your own personal list. Feel free to remove
|
|
all the scripts mentioned within it; the "important" part of it is the
|
|
first two lines.
|
|
|
|
Your computer needs to have wget for GetLatestVimScripts to do its work.
|
|
|
|
1. Unix:
|
|
cd $HOME/.vim
|
|
bunzip2 GetLatestVimScripts.tar.bz2
|
|
tar -oxvf GetLatestVimScripts.tar
|
|
cd GetLatest
|
|
mv GetLatestVimScripts.dist GetLatestVimScripts.dat
|
|
vi
|
|
:helptags ~/.vim/doc
|
|
|
|
2. Windows:
|
|
cd
|
|
cd vimfiles
|
|
bunzip2 GetLatestVimScripts.tar.bz2
|
|
tar -oxvf GetLatestVimScripts.tar
|
|
cd GetLatest
|
|
ren GetLatestVimScripts.dist GetLatestVimScripts.dat
|
|
vi
|
|
:helptags ~/vimfiles/doc
|
|
|
|
|
|
==============================================================================
|
|
3. GetLatestVimScripts Usage *getlatestvimscripts* *glvs*
|
|
|
|
While in vim, type
|
|
>
|
|
:GetLatestVimScripts
|
|
<
|
|
Unless its been defined elsewhere,
|
|
>
|
|
:GLVS
|
|
<
|
|
will also work.
|
|
|
|
The script will attempt to update and, if so directed, automatically
|
|
install scripts from http://vim.sourceforge.net/. To do so it will
|
|
peruse a file, [.vim|vimfiles]/GetLatest/GetLatestVimScripts.dat
|
|
(see |glvs-data|), and examine plugins in your [.vim|vimfiles]/plugin
|
|
directory (see |glvs-plugin|).
|
|
|
|
Scripts which have been downloaded will appear in the .../GetLatest
|
|
subdirectory.
|
|
|
|
The <GetLatestVimScripts.dat> file will be automatically be updated to
|
|
reflect the latest version of script(s) so downloaded.
|
|
|
|
|
|
==============================================================================
|
|
4. GetLatestVimScripts Data File *getlatestvimscripts-data* *glvs-data*
|
|
|
|
The Data file has a header which should appear as:
|
|
>
|
|
ScriptID SourceID Filename
|
|
--------------------------
|
|
<
|
|
Below that are three columns; the first two are numeric followed by a
|
|
text column.
|
|
|
|
The first number on each line gives the script's ScriptID. When you're
|
|
about to use a web browser to look at scripts on http://vim.sf.net/, just
|
|
before you click on the script's link, you'll see a line resembling
|
|
|
|
http://vim.sourceforge.net/scripts/script.php?script_id=40
|
|
|
|
The "40" happens to be a ScriptID that GetLatestVimScripts needs to
|
|
download the associated page.
|
|
|
|
The second number on each line gives the script's SourceID. The SourceID
|
|
records the count of uploaded scripts as determined by vim.sf.net; hence
|
|
it serves to indicate "when" a script was uploaded. Setting the SourceID
|
|
to 1 insures that GetLatestVimScripts will assume that the script it has
|
|
is out-of-date.
|
|
|
|
The SourceID is extracted by GetLatestVimScripts from the script's page on
|
|
vim.sf.net; whenever its greater than the one stored in the
|
|
GetLatestVimScripts.dat file, the script will be downloaded.
|
|
|
|
If your script's author has included a special comment line in his/her
|
|
plugin, the plugin itself will be used by GetLatestVimScripts to build
|
|
your <GetLatestVimScripts.dat> file, including any dependencies on
|
|
other scripts it may have.
|
|
|
|
If your comment field begins with :AutoInstall:, GetLatestVimScripts will
|
|
attempt to automatically install the script. Thus, GetLatestVimScripts
|
|
thus provides a comprehensive ability to keep your plugins up-to-date!
|
|
|
|
==============================================================================
|
|
5. GetLatestVimScripts Plugins *getlatestvimscripts-plugins* *glvs-plugins*
|
|
|
|
|
|
If a plugin author includes the following comment anywhere in their
|
|
plugin, GetLatestVimScripts will find it and use it to build user's
|
|
GetLatestVimScripts.dat files:
|
|
>
|
|
src_id
|
|
v
|
|
" GetLatestVimScripts: ### ### yourscriptname
|
|
^
|
|
scriptid
|
|
<
|
|
As an author, you should include such a line in to refer to your own
|
|
script plus any additional lines describing any plugin dependencies it
|
|
may have. Same format, of course!
|
|
|
|
If your command is auto-installable (see |glvs-autoinstall|), and most
|
|
scripts are, then you may include :AutoInstall: at the start of
|
|
"yourscriptname".
|
|
|
|
GetLatestVimScript commands for those scripts are then appended, if not
|
|
already present, to the user's GetLatest/GetLatestVimScripts.dat file.
|
|
Its a relatively painless way to automate the acquisition of any scripts
|
|
your plugins depend upon.
|
|
|
|
Now, as an author, you probably don't want GetLatestVimScripts to download
|
|
your own scripts for you yourself, thereby overwriting your
|
|
not-yet-released hard work. GetLatestVimScripts provides a solution for
|
|
this: put
|
|
>
|
|
0 0 yourscriptname
|
|
<
|
|
into your <GetLatestVimScripts.dat> file and GetLatestVimScripts will
|
|
skip examining the "yourscriptname" scripts for those GetLatestVimScript
|
|
comment lines. As a result, those lines won't be inadvertently installed
|
|
into your <GetLatestVimScripts.dat> file and subsequently used to download
|
|
your own scripts. This is especially important to do if you've included
|
|
the :AutoInstall: option.
|
|
|
|
Be certain to use the same "yourscriptname" in the "0 0 yourscriptname" line
|
|
as you've used in your GetLatestVimScript comment!
|
|
|
|
|
|
==============================================================================
|
|
6. GetLatestVimScripts AutoInstall *getlatestvimscripts-autoinstall*
|
|
*glvs-autoinstall*
|
|
|
|
GetLatestVimScripts now supports "AutoInstall". Not all scripts are
|
|
supportive of auto-install, as they may have special things you need to do
|
|
to install them (please refer to the script's "install" directions). On
|
|
the other hand, most scripts will be auto-installable.
|
|
|
|
To let GetLatestVimScripts do an autoinstall, the data file's comment
|
|
field should begin with (surrounding blanks are ignored):
|
|
|
|
:AutoInstall:
|
|
|
|
Both colons are needed, and it should begin the comment (yourscriptname)
|
|
field.
|
|
|
|
One may prevent any autoinstalling by putting the following line
|
|
in your <.vimrc>:
|
|
>
|
|
let g:GetLatestVimScripts_allowautoinstall= 0
|
|
<
|
|
|
|
With :AutoInstall: enabled, as it is by default, files which end with
|
|
|
|
---.tar.bz2 : decompressed and untarred in [.vim|vimfiles] directory
|
|
---.tar.gz : decompressed and untarred in [.vim|vimfiles] directory
|
|
---.vim.bz2 : decompressed and moved to the .vim/plugin directory
|
|
---.vim.gz : decompressed and moved to the .vim/plugin directory
|
|
---.zip : unzipped in [.vim|vimfiles] directory
|
|
---.vim : moved to [.vim|vimfiles]/plugin directory
|
|
|
|
and which merely need to have their components placed by the untar/gunzip
|
|
or move-to-plugin-directory process should be auto-installable.
|
|
|
|
When is a script not auto-installable? Let me give an example:
|
|
>
|
|
[.vim|vimfiles]/after/syntax/blockhl.vim
|
|
<
|
|
The <blockhl.vim> script provides block highlighting for C/C++ programs;
|
|
it is available at:
|
|
>
|
|
http://vim.sourceforge.net/scripts/script.php?script_id=104
|
|
<
|
|
Currently, vim's after/syntax only supports by-filetype scripts (in
|
|
blockhl.vim's case, that's after/syntax/c.vim). Hence, auto-install would
|
|
possibly overwrite the current user's after/syntax/c.vim file.
|
|
|
|
In my own case, I use <aftersyntax.vim> (renamed to after/syntax/c.vim) to
|
|
allow a after/syntax/c/ directory:
|
|
>
|
|
http://vim.sourceforge.net/scripts/script.php?script_id=1023
|
|
<
|
|
The script allows multiple syntax files to exist separately in the
|
|
after/syntax/c subdirectory. I can't bundle aftersyntax.vim in and build
|
|
an appropriate tarball for auto-install because of the potential for the
|
|
after/syntax/c.vim contained in it to overwrite a user's c.vim.
|
|
|
|
|
|
==============================================================================
|
|
7. GetLatestVimScripts Algorithm *getlatestvimscripts-algorithm* *glvs-alg*
|
|
|
|
The Vim sourceforge page dynamically creates a page by keying off of the
|
|
so-called script-id. Within the webpage of
|
|
|
|
http://vim.sourceforge.net/scripts/script.php?script_id=40
|
|
|
|
is a line specifying the latest source-id (src_id). The source identifier
|
|
numbers are always increasing, hence if the src_id is greater than the one
|
|
recorded for the script in GetLatestVimScripts then its time to download a
|
|
newer copy of that script.
|
|
|
|
GetLatestVimScripts will then download the script and update its internal
|
|
database of script ids, source ids, and scriptnames.
|
|
|
|
The AutoInstall process will:
|
|
|
|
Move the file from GetLatest/ to the following directory
|
|
Unix : $HOME/.vim
|
|
Windows: $HOME\vimfiles
|
|
|
|
if the downloaded file ends with ".bz2"
|
|
bunzip2 it
|
|
else if the downloaded file ends with ".gz"
|
|
gunzip it
|
|
if the resulting file ends with ".zip"
|
|
unzip it
|
|
else if the resulting file ends with ".tar"
|
|
tar -oxvf it
|
|
else if the resulting file ends with ".vim"
|
|
move it to the plugin subdirectory
|
|
|
|
|
|
==============================================================================
|
|
8. GetLatestVimScripts History *getlatestvimscripts-history* *glvs-hist*
|
|
|
|
v20 Dec 23, 2005 : * Eric Haarbauer found&fixed a bug with unzip use;
|
|
unzip needs the -o flag to overwrite.
|
|
v19 Nov 28, 2005 : * v18's GetLatestVimScript line accessed the wrong
|
|
script! Fixed.
|
|
v18 Mar 21, 2005 : * bugfix to automatic database construction
|
|
* bugfix - nowrapscan caused an error
|
|
(tnx to David Green for the fix)
|
|
Apr 01, 2005 * if shell is bash, "mv" instead of "ren" used in
|
|
:AutoInstall:s, even though its o/s is windows
|
|
Apr 01, 2005 * when downloading errors occurred, GLVS was
|
|
terminating early. It now just goes on to trying
|
|
the next script (after trying three times to
|
|
download a script description page)
|
|
Apr 20, 2005 * bugfix - when a failure to download occurred,
|
|
GetLatestVimScripts would stop early and claim that
|
|
everything was current. Fixed.
|
|
v17 Aug 25, 2004 : * g:GetLatestVimScripts_allowautoinstall, which
|
|
defaults to 1, can be used to prevent all
|
|
:AutoInstall:
|
|
v16 Aug 25, 2004 : * made execution of bunzip2/gunzip/tar/zip silent
|
|
* fixed bug with :AutoInstall: use of helptags
|
|
v15 Aug 24, 2004 : * bugfix: the "0 0 comment" download prevention wasn't
|
|
always preventing downloads (just usually). Fixed.
|
|
v14 Aug 24, 2004 : * bugfix -- helptags was using dotvim, rather than
|
|
s:dotvim. Fixed.
|
|
v13 Aug 23, 2004 : * will skip downloading a file if its scriptid or srcid
|
|
is zero. Useful for script authors; that way their
|
|
own GetLatestVimScripts activity won't overwrite
|
|
their scripts.
|
|
v12 Aug 23, 2004 : * bugfix - a "return" got left in the distribution that
|
|
was intended only for testing. Removed, now works.
|
|
* :AutoInstall: implemented
|
|
v11 Aug 20, 2004 : * GetLatestVimScripts is now a plugin:
|
|
* :GetLatestVimScripts command
|
|
* (runtimepath)/GetLatest/GetLatestVimScripts.dat
|
|
now holds scripts that need updating
|
|
v10 Apr 19, 2004 : * moved history from script to doc
|
|
v9 Jan 23, 2004 : windows (win32/win16/win95) will use
|
|
double quotes ("") whereas other systems will use
|
|
single quotes ('') around the urls in calls via wget
|
|
v8 Dec 01, 2003 : makes three tries at downloading
|
|
v7 Sep 02, 2003 : added error messages if "Click on..." or "src_id="
|
|
not found in downloaded webpage
|
|
Uses t_ti, t_te, and rs to make progress visible
|
|
v6 Aug 06, 2003 : final status messages now display summary of work
|
|
( "Downloaded someqty scripts" or
|
|
"Everything was current")
|
|
Now GetLatestVimScripts is careful about downloading
|
|
GetLatestVimScripts.vim itself!
|
|
(goes to <NEW_GetLatestVimScripts.vim>)
|
|
v5 Aug 04, 2003 : missing an endif near bottom
|
|
v4 Jun 17, 2003 : redraw! just before each "considering" message
|
|
v3 May 27, 2003 : Protects downloaded files from errant shell
|
|
expansions with single quotes: '...'
|
|
v2 May 14, 2003 : extracts name of item to be obtained from the
|
|
script file. Uses it instead of comment field
|
|
for output filename; comment is used in the
|
|
"considering..." line and is now just a comment!
|
|
* Fixed a bug: a string-of-numbers is not the
|
|
same as a number, so I added zero to them
|
|
and they became numbers. Fixes comparison.
|
|
|
|
==============================================================================
|
|
vim:tw=78:ts=8:ft=help
|