2013-03-16 18 views
34

Se ho un file con una linea shebang (ad es #!/bin/bash) aperto in Vim e il file ha permessi di esecuzione (cioè chmod +x) So che posso digitare questo per eseguirlo senza lasciare l'editor:Vim: esegue il file corrente?

:! %:p 
  • : per la modalità di comando
  • ! per eseguire un comando shell
  • % per riferirsi al file nel buffer corrente
  • :p per utilizzare il percorso completo del file corrente

C'è una scorciatoia più breve per questo compito frequente?

ad es. c'è una scorciatoia per ZZ:wq, ecc

risposta

31
:!%:p 

, senza spazi, è più breve.

Se si desidera un collegamento ancora più breve, è possibile creare una mappatura personalizzata:

nnoremap <F9> :!%:p 

o il più "mnemonico":

nnoremap <leader>r :!%:p 
+0

Non è sufficiente se non sono nella stessa cartella del file che sto modificando, e non voglio pensarci ogni volta, per ogni file, o costringermi a dover sempre 'cd 'prima del montaggio .. Mi piace la memoria muscolare. (Mi fa piacere che tu risponda e offra una soluzione, grazie.) – Robottinosino

+0

sì, ho effettivamente modificato la mia risposta prima di leggere il tuo commento. – romainl

+10

usa nnoremap :!%: P per alleviare l'onere di premere Invio ogni volta. – hkyi

1

È possibile aggiungere una mappatura dei tasti al vostro .vimrc

map <F5> :!% 
2

Dopo averlo eseguito una volta, un breve :!! lo ripeterà.

+0

Solo se è l'ultimo comando eseguito .. :( – Robottinosino

+0

Ultima': ', che è. –

8

Se non si è impostare le autorizzazioni è possibile eseguire:

:! sh % 
1

Nessuna delle risposte precedenti funzionare se il tuo percorso nomefile/directory ha spazi in esso. Correzione semplice.

:!"%:p" 
Problemi correlati