2009-08-06 17 views
5

en lisant sur quelques conseils vim, je suis tombé sur :r!{command} et :.!{command}, qui prennent tous deux la sortie du shell <command> et le mettre dans le tampon courant. J'imagine le 'r' pour 'lire', mais comment dois-je 'traduire' le point dans la commande ci-dessus?quelle est la différence entre:.! et: r !?

Et: ont-ils exactement la même fonction?

Merci beaucoup pour vos idées!

Guba

+0

Peut-être que cela devrait aller au superutilisateur, puisque c'est une question d'utilisateur ne programmant pas? [@Guba, ne vous inquiétez pas de le déplacer, ça va se passer automatiquement si besoin est. Le mot de passe bêta est sur http://blog.stackoverflow.com/2009/07/super-user-semi-private-beta-begins/, n'oubliez pas de lier votre compte, voir http: //blog.stackoverflow. com/2009/07/cross-site-account-associations /] – bdonlan

Répondre

16

Le point est une région, en référence à la ligne courante. Le ! prend alors cette région et l'envoie à travers la commande.

Ainsi, par exemple, si vous faites:

:.!rev 

Vous inverser l'ordre des caractères dans la ligne courante.

Bien sûr, si vous utilisez une commande qui ignore son entrée, vous remplacerez simplement la ligne courante par la sortie. Par contre,

:r!, d'autre part, insère la sortie après la ligne courante, sans supprimer le texte de la ligne courante.

+0

Brilliant! Bravo pour la réponse rapide et précise! – Guba

+0

: .r! ne travaille pas pour moi. Il ne prend pas de ligne et de tuyaux à commander. – Arpegius

+1

lionbest, s'il vous plaît noter que aucune mention n'a été faite de: .r! . C'est soit:.! {Commande} soit: r! {Commande}. – Guba

Questions connexes