Come eseguire i comandi Unix da Vim?


77

Come posso eseguire i comandi Unix mentre sono all'interno di VIM?

Risposte:


103

Vai in modalità comando Esc, quindi esegui :!unix_command. Tutto ciò che viene eseguito dal :prompt a partire dal botto !verrà eseguito come comando shell unix. Ti verrà mostrato l'output e ti sarà permesso di premere un tasto per tornare al tuo lavoro in vim.

Se hai selezionato del testo in modalità visiva e desideri inviarlo a un comando come STDIN, premi !!e inserisci il tuo comando. I risultati del comando sostituiranno il testo selezionato.


14
Inoltre, !! senza alcun testo selezionato ti consentirà di eseguire un comando e quindi inserire il risultato nella posizione corrente del cursore: non è necessario inviare elementi a STDIN e sostituirli se non è necessario / desiderato.
Kromey,

4
inoltre, se vuoi semplicemente inserire l'output di un comando nel tuo documento, fallo semplicemente :r!unix_command. Questo è utile per comandi comedate
Yab

2
Puoi anche eseguire più righe del tuo buffer vi dalla shell (o da qualsiasi interprete) e farle sostituire dal risultato dell'esecuzione. ad es .: :10,20!shoppure, forma delle linee segnate,'a,'b!sh
jlliagre

1
Qualcos'altro che ritengo degno di nota è che dipende dal sistema operativo in uso. Se stai usando Windows, eseguirà un comando shell di Windows. Molte persone che leggono questo lo sanno già, ma per le persone che provengono da Google, ho pensato che valesse la pena menzionarlo.
Andrew,

25

Da un mirror della guida di VIM :

:shell        :sh[ell]        start a shell
:!            :!{command}     execute {command} with a shell
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.