mirror of
https://github.com/vim/vim
synced 2025-07-16 01:01:58 +00:00
304 lines
12 KiB
Plaintext
304 lines
12 KiB
Plaintext
*getscript.txt* For Vim version 7.0g. Last change: 2006 Apr 30
|
|
|
|
Get the Latest VimScripts
|
|
|
|
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 Usage......................: |glvs|
|
|
3. GetLatestVimScripts Data File..................: |glvs-data|
|
|
4. GetLatestVimScripts Plugins....................: |glvs-plugins|
|
|
5. GetLatestVimScripts AutoInstall................: |glvs-autoinstall|
|
|
6. GetLatestVimScripts Algorithm..................: |glvs-alg|
|
|
7. GetLatestVimScripts History....................: |glvs-hist|
|
|
|
|
|
|
==============================================================================
|
|
2. GetLatestVimScripts Usage *getlatestvimscripts* *getscript* *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-plugins|).
|
|
|
|
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.
|
|
|
|
|
|
==============================================================================
|
|
3. 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!
|
|
|
|
==============================================================================
|
|
4. 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!
|
|
|
|
|
|
==============================================================================
|
|
5. 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.
|
|
|
|
|
|
==============================================================================
|
|
6. 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
|
|
|
|
|
|
==============================================================================
|
|
7. 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
|