【发布时间】:2010-11-15 00:33:38
【问题描述】:
我使用 Pathogen,并且有一个更新脚本,可以从 vim.org、github 或其他任何地方下载我使用的所有 vim 插件的最新版本。但是,此脚本当前不更新 vim 帮助标签。为此,我必须在 vim 中访问每个更新的插件并执行 ":helptags doc/"。如果我可以用我的更新脚本来这样做会很棒,但为了这样做,我需要从脚本运行 vim ":helptags" 命令。这可能吗?
谢谢!
【问题讨论】:
标签: vim
我使用 Pathogen,并且有一个更新脚本,可以从 vim.org、github 或其他任何地方下载我使用的所有 vim 插件的最新版本。但是,此脚本当前不更新 vim 帮助标签。为此,我必须在 vim 中访问每个更新的插件并执行 ":helptags doc/"。如果我可以用我的更新脚本来这样做会很棒,但为了这样做,我需要从脚本运行 vim ":helptags" 命令。这可能吗?
谢谢!
【问题讨论】:
标签: vim
pathogen.vim 1.2 (2010-01-17) 之后的版本有一个pathogen#helptags 函数,它会自动更新runtimepath 中每个目录的帮助标签。打完pathogen#runtime_append_all_bundles就打吧:
call pathogen#runtime_append_all_bundles()
call pathogen#helptags()
或者,假设您的.vimrc 中有call pathogen#runtime_append_all_bundles():
vim -c 'call pathogen#helptags()|q'
在获取更新后仅从命令行执行一次。
最近版本的病原体建议在您的 .vimrc 中调用 pathogen#infect() 而不是 pathogen#runtime_append_all_bundles(因为 b147125 “添加病原体#infect() 作为基本设置的主要入口点”,2011-05-13;前者在内部调用后者)。如果您的.vimrc 正在呼叫pathogen#infect(),则在此之后将您的呼叫转至pathogen#helptags()。
【讨论】:
call pathogen#infect() 被使用而不是call pathogen#runtime_append_all_bundles()。以防其他人在这里绊倒。
execute pathogen#infect();execute pathogen#helptags()
所有文档不应该都在同一个doc 目录中吗?也许 .vim/doc, /usr/share/vim/vimfiles/doc?
在任何情况下,你都可以启动 vim,并引导它运行命令:
cd <plugindir>
vim -c "helptags doc/"
你可以指定多个命令,所以最后一个可以是-c q,让vim在你完成后退出。 (或者你可以将它作为一个命令添加,command1 | q。)或者,如果你有很多命令要运行,你可以生成一个脚本,并让 vim 使用vim -S <script> 运行它;同样,您可以创建脚本的最后一个命令q,以便在完成后关闭。
【讨论】:
-u NONE 来阻止 vim 进行任何初始化,比如采购 vimrcs。
bundle/),因此进入每个bundle/name-of-the-plugin/doc 很烦人。克里斯下面的答案是合适的答案。
在足够近的版本中,:helptags ALL 可以工作。
【讨论】:
一段时间以来,pathogen provides the Helptags command 会更新您所有捆绑包(以及属于runtimepath 的所有其他目录)的文档。
因此,调用就足够了
:Helptags
在你的 Vim 插件集合改变之后。甚至可能通过调用自动调用例如vim -c Helptags -c q 来自您的更新脚本。
【讨论】: