41 votes

Génération d'un helptag pour Vim

J'utilise pathogen et j'ai un script de mise à jour qui télécharge les dernières versions de tous les plugins vim que j'utilise à partir de vim.org, github, ou partout ailleurs où ils peuvent être. Cependant, ce script ne met pas actuellement à jour les helptags de vim. Pour ce faire, je dois aller dans chaque plugin mis à jour dans vim et exécuter ":helptags doc/". Ce serait génial si je pouvais le faire avec mon script de mise à jour, mais pour ce faire, je dois exécuter la commande vim ":helptags" à partir d'un script. Est-ce possible ?

Gracias.

75voto

Chris Johnsen Points 50064

pathogène.vim Les versions postérieures à la version 1.2 (2010-01-17) ont une pathogen#helptags qui mettra automatiquement à jour les balises d'aide pour chaque répertoire dans le fichier runtimepath . Il suffit de l'appeler après avoir appelé pathogen#runtime_append_all_bundles :

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

Ou, en supposant que vous avez call pathogen#runtime_append_all_bundles() en su .vimrc :

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

à partir de la ligne de commande, une seule fois après avoir récupéré les mises à jour.


Les versions récentes de pathogène recommandent d'appeler pathogen#infect() en su .vimrc au lieu de pathogen#runtime_append_all_bundles (depuis b147125 "Add pathogen#infect() as primary entry point for basic setup", 2011-05-13 ; le premier appelle le second en interne). Si votre .vimrc appelle pathogen#infect() puis passez votre appel à pathogen#helptags() après cela.

0 votes

Assurez-vous que vous avez des helptags d'appel après avoir ajouté tous les paquets.

3 votes

call pathogen#infect() est utilisé à la place call pathogen#runtime_append_all_bundles() . Juste au cas où quelqu'un d'autre tomberait ici.

6 votes

Dans votre .vimrc execute pathogen#infect();execute pathogen#helptags()

28voto

Jefromi Points 127932

Toute la documentation ne devrait-elle pas être dans la même doc répertoire ? Peut-être .vim/doc, /usr/share/vim/vimfiles/doc ?

Dans tous les cas, vous pouvez lancer vim, et lui demander d'exécuter une commande :

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

Vous pouvez spécifier plusieurs commandes, ainsi la dernière peut être -c q pour que vim se termine lorsque vous avez terminé. (Ou vous pouvez le faire en une seule commande, command1 | q .) Ou, si vous avez beaucoup de commandes à exécuter, vous pouvez générer un script, et faire en sorte que vim l'exécute en utilisant vim -S <script> Encore une fois, vous pouvez faire en sorte que la dernière commande de la script q pour qu'il se ferme quand il a fini.

0 votes

C'est ce que je cherchais. J'espérais qu'il y avait un moyen plus propre que -c "... | q", parce que vim se plaint d'être appelé lorsque stdout n'est pas un terminal, mais j'ai corrigé cela avec un peu de "2> /dev/null". Merci !

0 votes

Vous pouvez également ajouter -u NONE pour empêcher vim de faire toute initialisation comme le sourcing des vimrcs, si vous êtes obsessionnel (ou si votre vimrc est vraiment lent).

3 votes

Le problème ici est que agent pathogène conserve chaque plugin dans un répertoire différent à l'intérieur d'un répertoire commun ( bundle/ par défaut), donc en allant dans chaque bundle/name-of-the-plugin/doc est ennuyeux. La réponse Chris ci-dessous est la réponse appropriée.

8voto

Stephan Lukits Points 106

Dans les versions assez récentes, :helptags ALL fonctionnera.

4voto

maxschlepzig Points 3578

Pendant un certain temps Le pathogène fournit le Helptags commande qui met à jour la documentation de tous vos bundles (et de tous les autres répertoires qui font partie de l'arborescence de l'entreprise). runtimepath ).

Ainsi, il suffit d'appeler

:Helptags

après que votre collection de plugins Vim ait été modifiée. Eventuellement même automatiquement en appelant par ex. vim -c Helptags -c q de votre script de mise à jour.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X