2009-08-06 39 views
5

đọc lên một số mẹo vim, tôi đi qua :r!{command}:.!{command}, cả hai đều lấy đầu ra của vỏ <command> và đặt nó vào bộ đệm hiện tại. Tôi tưởng tượng 'r' để phù hợp với 'đã đọc', nhưng làm cách nào để 'dịch' dấu chấm trong câu lệnh ở trên?sự khác biệt giữa:.! và: r !?

Và: chúng có cùng chức năng giống nhau không?

Cảm ơn rất nhiều vì thông tin chi tiết của bạn!

Guba

+0

Có lẽ điều này nên đi đến superuser, vì nó là một câu hỏi người dùng không lập trình? [@Guba, đừng lo lắng về việc di chuyển nó, nó sẽ tự động xảy ra nếu cần thiết. Mật khẩu beta có tại http://blog.stackoverflow.com/2009/07/super-user-semi-private-beta-begins/, đừng quên liên kết tài khoản của bạn, xem http: //blog.stackoverflow. com/2009/07/cross-site-account-associations /] – bdonlan

Trả lời

16

Dấu chấm là một vùng, tham chiếu đến dòng hiện tại. Sau đó, ! lấy vùng này và đặt nó qua lệnh.

Vì vậy, ví dụ, nếu bạn làm:

:.!rev 

Bạn sẽ đảo ngược thứ tự của các nhân vật trong dòng hiện tại.

Tất nhiên, nếu bạn sử dụng lệnh bỏ qua đầu vào của nó, bạn sẽ chỉ thay thế dòng hiện tại bằng bất kỳ đầu ra nào.

:r!, mặt khác, chèn đầu ra sau dòng hiện tại, mà không xóa văn bản của dòng hiện tại.

+0

Tuyệt vời! Chúc mừng cho câu trả lời nhanh chóng và chính xác! – Guba

+0

: .r! không làm việc cho tôi. Nó không có dòng và đường ống này để chỉ huy. – Arpegius

+1

lionbest, xin lưu ý rằng không đề cập đến được làm bằng: .r! . Đó là:.! {Command} hoặc: r! {Command}. – Guba

Các vấn đề liên quan