2009-08-06 51 views
5

Lesen auf einigen vim Tipps, stieß ich auf :r!{command} und :.!{command}, die beide die Ausgabe der Shell <command> nehmen und es in den aktuellen Puffer. Ich stelle mir vor, die 'r' steht für 'lesen', aber wie soll ich den Punkt im obigen Befehl 'übersetzen'?Was ist der Unterschied zwischen:.! und: r !?

Und: Haben sie genau die gleiche Funktion?

Vielen Dank für Ihre Einsichten!

Guba

+0

Vielleicht sollte dies an den Superuser gehen, da es sich um eine Benutzerfrage handelt, die nicht programmiert? [@Guba, mach dir keine Sorgen, es zu bewegen, es wird automatisch passieren, wenn es sein muss. Das Beta-Passwort finden Sie unter http://blog.stackoverflow.com/2009/07/super-user-semi-private-beta-begins/. Vergessen Sie nicht, Ihr Konto zu verknüpfen, siehe http: //blog.stackoverflow. com/2009/07/cross-site-account-associations /] – bdonlan

Antwort

16

Der Punkt ist eine Region, zu der aktuellen Zeile bezieht. Die ! nimmt dann diese Region und leitet sie durch den Befehl.

So zum Beispiel, wenn Sie das tun:

:.!rev 

Sie verlassen nun die Reihenfolge der Zeichen in der aktuellen Zeile rückgängig machen.

Natürlich, wenn Sie einen Befehl verwenden, der seine Eingabe ignoriert, ersetzen Sie einfach die aktuelle Zeile durch die Ausgabe.

:r!, fügt die Ausgabe nach der aktuellen Zeile ein, ohne den Text der aktuellen Zeile zu entfernen.

+0

Brilliant! Prost für die schnelle und präzise Antwort! – Guba

+0

: .r! nicht für mich arbeiten. Es braucht keine Linie und Pipes dies zu befehlen. – Arpegius

+1

lionbest, bitte beachten Sie, dass nicht erwähnt wurde: .r! . Entweder:.! {Befehl} oder: r! {Befehl}. – Guba

Verwandte Themen