2010-11-15 20 views
32

Ich benutze Krankheitserreger und habe ein Update-Skript, das die neuesten Versionen aller vim-Plugins herunterlädt, die ich von vim.org, github oder wo auch immer sie sonst sind. Dieses Skript aktualisiert die vim-Hilfethemen derzeit jedoch nicht. Um dies zu tun, muss ich zu jedem aktualisierten Plugin in vim gehen und ": helptags doc /" ausführen. Es wäre großartig, wenn ich das mit meinem Update-Skript machen könnte, aber dazu muss ich den Befehl vim ": helptags" von einem Skript ausführen. Ist das möglich?Vim Helptag Generation

Danke!

Antwort

21

Sollte sich nicht die gesamte Dokumentation im selben doc Verzeichnis befinden? Vielleicht .vim/doc,/usr/teilen/vim/vimfiles/doc?

In jedem Fall können Sie Vim starten, und leiten sie einen Befehl auszuführen:

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

Sie mehrere Befehle angeben können, so kann die letzte -c q sein vim Ausgang zu haben, wenn Sie fertig sind . (Oder Sie können es als einen Befehl anheften, command1 | q.) Oder, wenn Sie viele Befehle ausführen müssen, können Sie ein Skript generieren, und vim ausführen es mit vim -S <script>; wieder, Sie können den letzten Befehl des Skripts q machen, damit es schließt, wenn es fertig ist.

+0

Das ist, was ich gesucht habe. Ich hatte gehofft, es gäbe einen saubereren Weg als -c "... | q", weil vim jammert und sich darüber beschwert, wenn stdout kein Terminal ist, aber ich habe das mit einem "2>/dev/null" behoben ". Vielen Dank! – So8res

+0

Sie können auch auf "-u NONE" klicken, um keine Initialisierung wie vimrcs zu erstellen, wenn Sie obsessiv sind (oder wenn Ihr vimrc wirklich langsam ist). – Cascabel

+3

Das Problem hier ist, dass [pathogen] (https://github.com/tpope/vim-pathogen) jedes Plugin in einem anderen Verzeichnis in einem gemeinsamen Verzeichnis (standardmäßig 'bundle /') hält, also in jedes 'bundle' geht/name-of-the-plugin/doc' ist nervig. Chris Antwort ist die passende Antwort. –

68

pathogen.vim Versionen nach 1.2 (2010-01-17) haben eine pathogen#helptags Funktion, die automatisch die Hilfe-Tags für jedes Verzeichnis in der runtimepath aktualisiert. nennen es nur, nachdem Sie pathogen#runtime_append_all_bundles nennen:

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

Oder vorausgesetzt, Sie call pathogen#runtime_append_all_bundles() in Ihrem .vimrc haben:

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

von der Kommandozeile nur einmal, nachdem Sie die Updates geholt haben.


Neuere Versionen von Pathogen empfehlen pathogen#infect() in Ihrem .vimrc statt pathogen#runtime_append_all_bundles (seit b147125 „für Grundeinstellungen hinzufügen Erreger # Infekt() als primärer Einstiegspunkt“ zu nennen, 2011-05-13, die früheren Anrufe letztere im Inneren). Wenn Ihr .vimrcpathogen#infect() ruft, dann setzen Sie Ihren Anruf auf pathogen#helptags() danach.

+0

Stellen Sie sicher, dass Sie nach dem Anhängen aller Bündel Anrufhilfen haben. –

+3

'call pathogen # infizieren()' wird stattdessen 'call pathogen # runtime_append_all_bundles()' verwendet. Nur wenn jemand anderes hier stolpert. –

+6

In Ihrem .vimrc 'execute pathogen # infizieren(); execut pathogen # helptags()' – mmell