94 votes

Vim : exécuter le fichier en cours ?

Si j'ai un fichier avec une ligne shebang (par ex. #!/bin/bash ) ouvert dans Vim et le fichier a des autorisations d'exécution (c'est-à-dire chmod +x ) Je sais que je peux taper ceci pour l'exécuter sans quitter l'éditeur :

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

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

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

88voto

romainl Points 55506
:!%:p

,sans les espaces, est plus court.

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

nnoremap <F9> :!%:p

ou le plus "mnémotechnique" :

nnoremap <leader>r :!%:p

22voto

James Dunmore Points 401

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

:! sh %

20voto

nullUser Points 425

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

:!"%:p"

12voto

Ingo Karkat Points 61399

Après l'avoir exécuté une fois, un court :!! le répéteront.

7voto

armagedescu Points 149

Lorsque vous lancez vi, spécifiez explicitement le chemin du fichier, comme ceci "vi ./blablabla".

vi ./yourscript.pl

Alors, commencez par !%

L'autre variante consiste à invoquer la commande vi comme ceci

!./%

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