*pi_getscript.txt* For Vim version 7.1. 最近更新: 2007年5月GETSCRIPT 参考手册 作者: Charles E. Campbell, Jr.
译者: Willis http://vimcdoc.sf.net Authors: Charles E. Campbell, Jr.<NdrOchip@ScampbellPfamilyA.Mbiz>
(remove NOSPAM from the email address) *GetLatestVimScripts-copyright* Copyright: (c) 2004-2006 by Charles E. Campbell, Jr. *glvs-copyright* The VIM LICENSE applies to getscript.vim and pi_getscript.txt (see |copyright|) except use "getscript" instead of "Vim". No warranty, express or implied. Use At-Your-Own-Risk. getscript 是一个插件,它简化了获取你自己使用的脚本的最新版本的步骤!输入 |:GLVS| 会启动 getscript;它会接着使用<GetLatestVimScripts.dat>
文件 (见 |GetLatestVimScripts_dat|) 来从 http//vim.sf.net/ 得到该文件列出的脚本的最新 版本。
1. 内容 *glvs-contents* *glvs* *getscript* *GetLatestVimScripts* 1. 内容...........................................: |glvs-contents| 2. GetLatestVimScripts -- 入门....................: |glvs-install| 3. GetLatestVimScripts 用法.......................: |glvs-usage| 4. GetLatestVimScripts 数据文件...................: |glvs-data| 5. GetLatestVimScripts 友好插件...................: |glvs-plugins| 6. GetLatestVimScripts 自动安装...................: |glvs-autoinstall| 7. GetLatestViMScripts 选项.......................: |glvs-options| 8. GetLatestVimScripts 算法.......................: |glvs-alg| 9. GetLatestVimScripts 历史.......................: |glvs-hist|
2. GetLatestVimScripts -- 入门 *getscript-start* *getlatestvimscripts-install* VIM 发 布 提 供 的 版 本 *glvs-dist-install* Vim 7.0 没有包含 GetLatestVimScripts.dist 文件,该文件提供了示例和样板。所以, 你需要自己建立一个。参见 |GetLatestVimScripts_dat|。 VIM SF NET 提 供 的 版 本 *glvs-install* 备注: 最后一步,即为 GetLatestVimScripts.dist 文件换名或移动,适用于那些第一次 刚刚下载 GetLatestVimScripts.tar.bz2 的用户。 GetLatestVimScripts.dist 文件提供了示例和样板,你可以参照来建立自己的列表。你 尽可以删掉所有那里提到的所有脚本,"紧要的" 部分是头两行。 你的计算机需要带有 wget,这样 GetLatestVimScripts 才能工作。 1. 如果经过压缩: gunzip getscript.vba.gz 2. Unix: vim getscript.vba :so % :q cd ~/.vim/GetLatest mv GetLatestVimScripts.dist GetLatestVimScripts.dat (编辑 GetLatestVimScripts.dat,以安装你自己需要的插件列表 -- 见 |GetLatestVimScripts_dat|) 3. Windows: vim getscript.vba :so % :q cd **path-to-vimfiles**/GetLatest mv GetLatestVimScripts.dist GetLatestVimScripts.dat (编辑 GetLatestVimScripts.dat,以安装你自己需要的插件列表 -- 见 |GetLatestVimScripts_dat|)
3. GetLatestVimScripts 用法 *glvs-usage* *:GLVS* 除非另有定义,:GLVS
会调用 GetLatestVimScripts()。如果其它脚本定义了该命令,那么你可以输入:GetLatestVimScripts
该脚本试图从 http://vim.sourceforge.net/ 更新并,如果允许,为你自动安装脚本。 为此它会审视如下文件.vim/GetLatest/GetLatestVimScripts.dat (unix)
或..wherever..\vimfiles\GetLatest\GetLatestVimScripts.dat (windows)
(见 |glvs-data|) 并检查 [.vim|vimfiles]/plugin 目录里的插件 (见 |glvs-plugins|)。 下载的脚本会出现在 ~/.vim/GetLatest (unix) 或 ..wherever..\vimfiles\GetLatest (windows) 子目录。如果<.vimrc>
里包含以下的行,GetLatestVimScripts 会尝试自动 安装它们:
let g:GetLatestVimScripts_allowautoinstall=1
GetLatestVimScripts.dat> 文件会自动更新,以反映脚本的最新下载版本。(也见 |glvs-options|)
4. GetLatestVimScripts 数据文件 *getscript-data* *glvs-data* *:GetLatestVimScripts_dat* 数据文件<GetLatestVimScripts.dat>
开始的两行必须包含下面的文字:ScriptID SourceID Filename
这两行之后的内容包含三列数据,前两列是数值列,然后是一列文本列。 GetLatest/GetLatestVimScripts.dist 文件包含了这样的数据文件的一个示例。任何 #... 之后的内容都被忽略,以便你在文件中嵌入注释。 每行第一个数值给出脚本的 ScriptID。如果用浏览器察看 http://vim.sf.net/ 里的脚 本,点击脚本的链接之前,你会看到该链接的形式如下: http://vim.sourceforge.net/scripts/script.php?script_id=40 这里 "40" 就是 ScriptID,GetLatestVimScripts 用它来下载相关页面。 每行第二个数值给出脚本的 SourceID。SourceID 记录由 vim.sf.net 决定的脚本上传次 数;这样,它起到了指示脚本 "何时" 上传的作用。设置 SourceID 为 1 就可使 GetLatestVimScripts 认为它拥有的脚本版本已经过时。 GetLatestVimScripts 从 vim.sf.net 的相应脚本页提取 SourceID。一旦该值大于 GetLatestVimScripts.dat 文件保存的值,该脚本就会被下载 (见 |GetLatestVimScripts_dat|)。 如果脚本作者在脚本中包含了某特殊注释行,GetLatestVimScripts 会用该脚本本身和 (如果存在的话) 它依赖的其它脚本来构造<GetLatestVimScripts.dat>
文件。例如,考 虑:
" GetLatestVimScripts: 884 1 :AutoInstall: AutoAlign.vim
该注释行告诉 getscript.vim 检查 #884 vim 脚本,并且说明该脚本可自动安装。 Getscript 也会使用该行来帮助构造 GetLatestVimScripts.dat 文件,如果该文件中还 没有包含 AutoAlign.vim 的行的话,在其中加入这样的行:
884 1 AutoAlign.vim
详见 |glvs-plugins|。这样,GetLatestVimScripts 提供了全面的让你脚本随时保持更 新的完整功能! *GetLatestVimScripts_dat* 一个
<GetLatestVimScripts.dat>
文件的示例:ScriptID SourceID Filename
294 1 Align.vim
120 2 decho.vim
40 3 DrawIt.tar.gz
451 4 EasyAccents.vim
195 5 engspchk.vim
642 6 GetLatestVimScripts.vim
489 7 Manpageview.vim
备注: 必须提供开始的两行,但它们基本上只起注释的作用。
5. GetLatestVimScripts 友好插件 *getscript-plugins* *glvs-plugins* 如果插件作者在插件的任何地方包含了下面形式的注释,GetLatestVimScripts 会找到它 并用来构造用户 GetLatestVimScripts.dat 文件:src_id
v
" GetLatestVimScripts: ### ### yourscriptname
^
scriptid
作为作者,加上该行就可以引用你自己的脚本,如果需要,也可以附加注释行来描述依赖 的其它脚本。当然,使用相同格式! 多数脚本都可以自动安装。如果你的命令也可以 (见 |glvs-autoinstall|),那么可在 "yourscriptname" 开始的位置加上 :AutoInstall:。 如果还没有加入的话,此时就会在用户 GetLatest/GetLatestVimScripts.dat 文件里加 入这些脚本的 GetLatestVimScript 命令。这是一个相对简单的自动获取所有你的插件所 依赖的脚本的方法。 不过,作为作者,你可能不想让 GetLatestVimScripts 下载你自己的脚本,因为这样会 覆盖你还没有发布的工作。GetLatestVimScripts 提供了解决这个问题的方法: 把0 0 yourscriptname
放入<GetLatestVimScripts.dat>
文件。这样 GetLatestVimScripts 就会跳过 "yourscriptname" 脚本的 GetLatestVimScript 注释行检查。从而,这些行就不会加到<GetLatestVimScripts.dat>
文件里并进而下载你自己的脚本。如果包含了 :AutoInstall: 选项,这一点尤其重要。 确定 "0 0 yourscriptname" 用的 "yourscriptname" 和 GetLatestVimScript 注释里的 相同!
6. GetLatestVimScripts 自动安装 *getscript-autoinstall* *glvs-autoinstall* GetLatestVimScripts 现在支持了 "AutoInstall" (自动安装)。并非所有脚本都支持自 动安装。若干脚本或有特殊的安装需求 (请参阅这些脚本的 "install" (安装) 指示)。 换一角度讲,可以自动安装的脚本还是占多数的。 要让 GetLatestVimScripts 进行自动安装,数据文件的注释域须以下列文字开始 (前后 有空白无妨):
:AutoInstall:
必须给出前后两个冒号,也必须放在注释 (yourscriptname) 域的开始处。 如果你不想进行任何自动安装,在<.vimrc>
里放入:
let g:GetLatestVimScripts_allowautoinstall= 0
缺省打开 :AutoInstall:。此时,名字里包含如下后缀的文件会被相应地 ---.tar.bz2 : 解压和 untar 解包到 .vim /目录 ---.vba.bz2 : 解压到 .vim/ 目录,然后由 vimball 处理 ---.vim.bz2 : 解压并移到 .vim/plugin 目录 ---.tar.gz : 解压和 untar 解包到 .vim/ 目录 ---.vba.gz : 解压到 .vim/ 目录,然后由 vimball 处理 ---.vim.gz : 解压并移到 .vim/plugin 目录 ---.vba : 解压到 .vim/ 目录 ---.vim : 移到 .vim/plugin 目录 ---.zip : unzip 解压到 .vim/ 目录 如果只要通过 untar/gunzip 或 "移到插件目录" 过程来放置各个部件就可以使用,那么 这个脚本就称之为可以自动安装。当然,Vimball 包总是可以自动安装的。 什么时候脚本不能自动安装?让我举个例子:[.vim|vimfiles]/after/syntax/blockhl.vim
<blockhl.vim>
脚本提供 C/C++ 程序的块高亮;它可以这样得到: http://vim.sourceforge.net/scripts/script.php?script_id=104 目前,vim 的 after/syntax 只支持按文件类型命名的脚本 (blockhl.vim 的情况应该使 用 after/syntax/c.vim)。所以,如果使用自动安装,可能会覆盖当前用户自己的 after/syntax/c.vim 文件。 我自己的例子。我用<aftersyntax.vim>
(换名到 after/syntax/c.vim) 以支持 after/syntax/c/ 目录: http://vim.sourceforge.net/scripts/script.php?script_id=1023 该脚本允许多个语法文件在 after/syntax/c 子目录同时存在。我不能把 aftersyntax.vim 捆绑进来并构造一个合适的自动安装用 tar 包,因为它包含的 after/syntax/c.vim 可能会覆盖用户自己的 c.vim。
7. GetLatestVimScripts 选项 *glvs-options*g:GetLatestVimScripts_wget
缺省= "wget" 该变量记住获取脚本命令名。g:GetLatestVimScripts_options
缺省= "-q -O" 该变量记住用于 g:GetLatestVimScripts_wget 命令的选项。g:getLatestVimScripts_allowautoinstall
缺省= 1 该变量指示是否允许 GetLatestVimScripts 尝试自动安装脚本。注意 它 (还) 不能识别 vimball 包。另外,脚本作者也必须说明他/她的插 件是否支持自动安装。
8. GetLatestVimScripts 算法 *glvs-algorithm* *glvs-alg* Vim sourceforge 页面用所谓的 script-id 键动态建立页面。以下网页 http://vim.sourceforge.net/scripts/script.php?script_id=40 指定最新的 source-id (src_id)。该源标识符 (source-id) 总是不断递增,因此如果 src_id 大于 GetLatestVimScripts 脚本记录的值,那就是时候下载该脚本的新版本了。 此时,GetLatestVimScripts 下载脚本并更新内部数据库里的 script id、 source id 和 scriptname。 然后,AutoInstall 过程会: 从 GetLatest/ 把文件移动到下面的目录 Unix : $HOME/.vim Windows: $HOME\vimfiles 如果下载文件以 ".bz2" 结尾 进行 bunzip2 解压 否则如果下载文件以 ".gz" 结尾 进行 gunzip 解压 如果产生的文件以 ".zip" 结尾 进行 unzip 解压 否则如果产生的文件以 ".tar" 结尾 进行 tar -oxvf 解包 否则如果产生的文件以 ".vim" 结尾 把它移动到 plugin 子目录
9. GetLatestVimScripts 历史 (英文) *getscript-history* *glvs-hist* {{{1
v24 Apr 16, 2007 : * removed save&restore of the fo option during script
loading
v23 Nov 03, 2006 : * ignores comments (#...)
* handles vimballs
v22 Oct 13, 2006 : * supports automatic use of curl if wget is not
available
v21 May 01, 2006 : * now takes advantage of autoloading.
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:fdm=marker
Generated by vim2html on 2008年 03月 27日 星期四 17:04:45 CST