80 votes

Comment exécuter automatiquement une commande shell après avoir enregistré un fichier dans Vim?

C'est parce que je voudrais exécuter automatiquement des tests après chaque enregistrement de fichier.

J'ai regardé autocmd et BufWritePost mais je n'arrive pas à le faire fonctionner.

105voto

Alex Howell Points 431

Cela exécute run_tests.sh après chaque enregistrement de fichier, avec le nom de fichier actuel comme seul paramètre :

:autocmd BufWritePost * !run_tests.sh 

Visualisez la commande automatique avec :

:autocmd BufWritePost *

Et supprimez toutes les commandes automatiques précédentes avec :

:autocmd! BufWritePost *

1voto

Siwei Shen Points 5814

Mettez ceci dans votre fichier .vimrc:

(prenez raml2html doc/api.raml > public/api_doc.html comme exemple de commande)

autocmd BufWritePost,FileWritePost *.raml silent! !raml2html doc/api.raml > public/api_doc.html

remarque:

  • silent! cachera toute la sortie de cette commande
  • :silent si vous utilisez vim7.3-, et silent! si vous utilisez vim7.3+
  • besoin de quitter et redémarrer vim, pour que le .vimrc prenne effet.

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