pi_getscript

pi_getscript.txt 适用于 Vim 9.0 版本。 最近更新: 2019年12月 GETSCRIPT 参考手册 作者: Charles E. Campbell, Jr. 译者: Willis Author: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> (remove NOSPAM from the email address) GetLatestVimScripts-copyright Copyright: (c) 2004-2012 by Charles E. Campbell glvs-copyright The VIM LICENSE (see copyright ) applies to the files in this package, including getscriptPlugin.vim, getscript.vim, GetLatestVimScripts.dist, and pi_getscript.txt, except use "getscript" instead of "Vim". Like anything else that's free, getscript and its associated files are provided *as is* and comes with no warranty of any kind, either expressed or implied. No guarantees of merchantability. No guarantees of suitability for any purpose. By using this plugin, you agree that in no event will the copyright holder be liable for any damages resulting from the use of this software. 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 或 curl,这样 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 用它来下载相关页面。该 id 是 vim.sf.net 在插件初始上传的时候分配的。 每行第二个数值给出脚本的 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 文件,如果该文件中还 没有包含下面类似的行的话,会在其中自动加入这样的行: 884 1 :AutoInstall: AutoAlign.vim 详见 glvs-plugins 。这样,GetLatestVimScripts 提供了全面的让你脚本随时保持更 新的完整功能! 摘要: * 可选地,允许 getscript 根据已安装的插件来构造或附加到 GetLatestVimScripts.dat 文件: let g:GetLatestVimScripts_allowautoinstall=1 * 已下载的插件中,如果有形如这样的行 " GetLatestVimScripts: 884 1 :AutoInstall: AutoAlign.vim 代表着插件作者同意 getscript 可以自动安装。不是所有插件都可以自动安装的, 插件的作者最能了解自己插件的情况。 * GetLatestVimScripts.dat 中,形如这样的行 884 1 :AutoInstall: AutoAlign.vim 代表你同意 getscript 进行自动安装。自动安装需要你本人和插件作者双方的同 意。见 GetLatestVimScripts_dat GetLatestVimScripts_dat 一个 <GetLatestVimScripts.dat> 文件的示例: ScriptID SourceID Filename

294 1 :AutoInstall: 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:。 src_id v " GetLatestVimScripts: ### ### :AutoInstall: yourscriptname ^ scriptid 备注: :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 尝试自动安装脚本。更进 一步地,插件作者必须显式地指明他/她的插件是否可以自动安装 (通 过 GetLatestVimScripts 注释行的 :AutoInstall: 关键字)。 g:GetLatestVimScripts_autoinstalldir 缺省= $HOME/.vim (linux) 缺省= $HOME/vimfiles (windows) 覆盖 :AutoInstall: 脚本安装的位置。不用于覆盖 vimball 安装的位 置。 g:GetLatestVimScripts_scriptaddr 缺省='http://vim.sourceforge.net/script.php?script_id=' 如果你的系统需要,可以覆盖之 ... ='http://vim.sourceforge.net/script/script.php?script_id='

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

v36 Apr 22, 2013 : * (glts) suggested use of plugin/**/*.vim instead of plugin/*.vim in globpath() call. * (Andy Wokula) got warning message when setting g:loaded_getscriptPlugin v35 Apr 07, 2012 : * (MengHuan Yu) pointed out that the script URL has changed (somewhat). However, it doesn't work, and the original one does (under Linux). I'll make it yet-another-option. v34 Jun 23, 2011 : * handles additional decompression options for tarballs v33 May 31, 2011 : * using fnameescape() instead of escape() * *.xz support v32 Jun 19, 2010 : * (Jan Steffens) added support for xz compression v31 Jun 29, 2008 : * (Bill McCarthy) fixed having hls enabled with getscript * (David Schaefer) the acd option interferes with vimballs Solution: bypass the acd option v30 Jun 13, 2008 : * GLVS now checks for existence of fnameescape() and will issue an error message if it is not supported v29 Jan 07, 2008 : * Bram M pointed out that cpo is a global option and that getscriptPlugin.vim was setting it but not restoring it. v28 Jan 02, 2008 : * improved shell quoting character handling, cygwin interface, register-a bypass Oct 29, 2007 * Bill McCarthy suggested a change to getscript that avoids creating pop-up windows 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:noet:ft=help:fdm=marker