Exécuter des commandes shell sur le fichier actuel en fonction de l'extension de fichier

8

Je fais actuellement beaucoup de travail avec Ruby et JavaScript. Je sais que je peux courir mes fichiers Ruby avec :! ruby %et aussi mon JavaScript avec :! node %, et que je peux lier l' un de ceux, par exemple, ,b. Comment puis-je configurer les choses pour que je puisse simplement lier une seule commande qui vérifiera l'extension du fichier que je modifie et exécutera la commande appropriée?

À M
la source

Réponses:

10

Vous pouvez utiliser :makepour cela; vous pouvez définir makeprg(abréviation de make program) sur n'importe quelle commande.

Quelques exemples:

au FileType ruby set makeprg=ruby\ %
au FileType javascript set makeprg=node\ %
au FileType python set makeprg=python\ %
au FileType coffeescript set makeprg=coffee\ -c\ %

noremap ,b :make<CR>

:makeétait à l'origine destiné à exécuter l' makeoutil pour générer le projet, mais les langages tels que Ruby ou Javascript n'ont pas besoin d'être compilés, le définir sur quelque chose qui exécutera le code est logique.

Martin Tournoij
la source