2009-08-06 74 views
5

leggendo alcuni suggerimenti vim, mi sono imbattuto in :r!{command} e :.!{command}, entrambi i quali prendono l'output della shell <command> e lo inseriscono nel buffer corrente. Immagino che 'r' debba essere 'letto', ma come faccio a 'tradurre' il punto nel comando sopra?qual è la differenza tra:.! e: r !?

E: hanno esattamente la stessa funzione?

Grazie mille per i vostri approfondimenti!

Guba

+0

Forse questo dovrebbe andare al superutente, poiché è una domanda utente non programmata? [@Guba, non preoccuparti di spostarlo, accadrà automaticamente se necessario. La password beta è su http://blog.stackoverflow.com/2009/07/super-user-semi-private-beta-begins/, non dimenticare di collegare il tuo account, vedi http: //blog.stackoverflow. it/2009/07/cross-site-account-associations /] – bdonlan

risposta

16

Il punto è una regione, riferendosi alla linea di corrente. Il ! quindi prende questa regione e la canalizza attraverso il comando.

Così, per esempio, se si fa:

:.!rev 

potrai invertire l'ordine dei caratteri nella riga corrente.

Ovviamente, se si utilizza un comando che ignora il proprio input, si sostituirà semplicemente la riga corrente con qualunque sia l'output.

:r!, d'altra parte, inserisce l'output dopo la riga corrente, senza rimuovere il testo della riga corrente.

+0

Fantastico! Saluti per la risposta rapida e precisa! – Guba

+0

: .r! non funziona per me Non prende la linea e convoglia questo al comando. – Arpegius

+1

lionbest, si ricorda che non è stata fatta menzione di: .r! . Può essere:.! {Comando} o: r! {Comando}. – Guba

Problemi correlati