Vim: exécuter le fichier actuel?

Si j’ai un fichier avec une ligne shebang (par exemple #!/bin/bash ) ouvert dans Vim et que le fichier a des droits d’exécution (par exemple chmod +x ), je sais que je peux taper pour l’exécuter sans quitter l’éditeur:

 :! %:p 
  • : pour le mode de commande
  • ! exécuter une commande shell
  • % pour faire référence au fichier dans le tampon actuel
  • :p pour utiliser le chemin complet du fichier en cours

Existe-t-il un raccourci plus court pour cette tâche fréquente?

Par exemple, il existe un raccourci ZZ pour :wq , etc.

 :!%:p 

, sans les espaces, est plus court.

Si vous voulez un raccourci encore plus court, vous pouvez créer un mappage personnalisé:

 nnoremap  :!%:p 

ou le plus “mnémonique”:

 nnoremap r :!%:p 

Si vous n’avez pas défini d’permissions, vous pouvez exécuter:

 :! sh % 

Après avoir exécuté cela une fois, un court métrage :!! va le répéter.

Aucune des réponses précédentes ne fonctionne si votre chemin de fichier / répertoire contient des espaces. Correction simple

 :!"%:p" 

Vous pouvez append un mappage de clé à votre fichier .vimrc

 map  :!%