2010-11-15 2 views
32

Я использую патоген и имею скрипт обновления, который загружает последние версии всех плагинов vim, которые я использую из vim.org, github или где бы они ни были. Однако этот скрипт не обновляет vim helptags. Для этого я должен перейти к каждому обновленному плагину в vim и выполнить «: helptags doc /». Было бы здорово, если бы я мог сделать это с моим сценарием обновления, но для этого мне нужно запустить команду vim «: helptags» из сценария. Это возможно?Vim helptag generation

Спасибо!

ответ

21

Не все документы содержатся в том же каталоге doc? Возможно .vim/doc,/usr/share/vim/vimfiles/doc?

В любом случае, вы можете запустить Vim, и направить его запустить команду:

cd <plugindir> 
vim -c "helptags doc/" 

Можно указать несколько команд, поэтому последний может быть -c q иметь ВИМ выход, когда вы закончите , (Или вы можете использовать его как одну команду, command1 | q.) Или, если у вас много команд для запуска, вы можете сгенерировать скрипт и запустить vim с помощью vim -S <script>; снова, вы можете сделать последнюю команду скрипта q, чтобы он закрывался, когда это было сделано.

+0

Это то, что я искал. Я надеялся, что есть более чистый способ, чем -c "... q", потому что vim скулит и жалуется на то, что вызывается, когда stdout не является терминалом, но я исправил это с помощью бит «2>/dev/null ». Благодаря! – So8res

+0

Вы также можете использовать на '-u NONE', чтобы vim не выполнял никаких инициализаций, например, vorrcs sourcing, если вы навязчивы (или если ваш vimrc очень медленный). – Cascabel

+3

Проблема в том, что [pathogen] (https://github.com/tpope/vim-pathogen) поддерживает каждый плагин в другом каталоге внутри общего каталога ('bundle /' по умолчанию), поэтому входим в каждый пакет/имя-плагин/doc' раздражает. Ответ Криса ниже - соответствующий ответ. –

68

pathogen.vim версии после 1.2 (2010-01-17) имеют функцию pathogen#helptags, которая автоматически обновляет теги справки для каждого каталога в runtimepath. Просто назвать это после того, как вы звоните pathogen#runtime_append_all_bundles:

call pathogen#runtime_append_all_bundles() 
call pathogen#helptags() 

Или, если у вас есть call pathogen#runtime_append_all_bundles() в вашем .vimrc:

vim -c 'call pathogen#helptags()|q' 

из командной строки только один раз после того, как вы принес обновления.


Последних версии патогена рекомендует позвонить pathogen#infect() в вашем .vimrc вместо pathogen#runtime_append_all_bundles (так b147125 «Добавить патоген # Инфекции() в качестве начальной точки для базовой установки», 2011-05-13, бывшие вызовы последние внутри). Если ваш звонит pathogen#infect(), тогда поместите свой звонок в pathogen#helptags().

+0

Убедитесь, что у вас есть вызов helptags после добавления всех пакетов. –

+3

'call pathogen # infect()' используется вместо 'call pathogen # runtime_append_all_bundles()'. Просто это случай, когда кто-то еще споткнется здесь. –

+6

В вашем .vimrc 'execute pathogen # infect(); function pathogen # helptags()' – mmell