2010-08-27 40 views
5

Trong Vim, làm cách nào để thay thế phần còn lại của một dòng bằng văn bản được kéo dài? Nếu tôi nhấn "D", văn bản được kéo dài sẽ được thay thế bằng văn bản đã xóa.Vim: Thay thế kết thúc của dòng

Ngoài ra, làm cách nào để có thể hút đến cuối dòng? Nếu tôi nhấn "Y", nó sẽ giật toàn bộ dòng.

Trả lời

2

Nhấn v nhập chế độ trực quan trên nhân vật bắt đầu của vùng chọn. Sau đó, nhấn $ để chuyển đến cuối dòng. Sau đó, nhấn y để đánh dấu lựa chọn.

Vì vậy:

v$y

Thay vì giật, sử dụng p để dán. Điều này sẽ dán trên vùng chọn. Vì vậy, sau khi bạn sử dụng D để xóa một số văn bản, làm:

v$p

này sẽ dán văn bản đã xóa trên vùng chọn.

+0

Ồ, xin lỗi, tôi nghĩ bạn có nghĩa là nhấn v $ y để giật. Yeah, nó hoạt động, cảm ơn. – Rafid

12

Hai cách bạn có thể thay thế văn bản đến cuối dòng với văn bản kéo mạnh trước đó:

  1. v$p - v để vào chế độ trực quan; $ để di chuyển đến cuối dòng; p để dán trên văn bản được đánh dấu.
  2. D"0p - văn bản được kéo dài cuối cùng (trái với văn bản đã xóa) được lưu trữ trong thanh ghi 0, vì vậy: D để xóa đến cuối dòng; "0 để chọn thanh ghi 0; p để dán thanh ghi đó.
+0

Không biết về đăng ký '0'. Đó là khá mát mẻ. – wuputah

+0

+1 - không biết về thanh ghi. –

+0

Vâng, tôi cũng không biết về bình luận đăng ký. Có cách nào để chọn hai câu trả lời làm câu trả lời được chấp nhận không? :) – Rafid

4

câu hỏi của bạn dường như được giải đáp triệt để bởi những người khác vào thời điểm này (v$py$), nhưng tôi muốn một mảnh thông tin bổ sung:

Để yank đến cuối dòng, cách mặc định là y$ . Tuy nhiên, thực tế là khá phổ biến đối với map Y y$ trong số .vimrc của bạn, vì hành vi mặc định là Y là dư thừa với yy và không phù hợp với các ánh xạ khác, chẳng hạn như DC.

+0

Cảm ơn nhận xét này, nó rất hữu ích. Tôi sẽ thêm nó vào .vimrc của tôi :) – Rafid

+0

Đó là tiện lợi. Cảm ơn – devth

1

Đây là cách tôi muốn làm điều đó:

  1. "ay$ (yank từ con trỏ đến cuối dòng vào đăng ký a)
  2. Di chuyển con trỏ đến vị trí mong muốn thay thế.
  3. D (xóa đến cuối dòng)
  4. "ap (dán nội dung giật ở bước 1)

Phải thừa nhận rằng, đây là rất giống với another answer nhưng tôi thích cách xác định một cách rõ ràng một thanh ghi vì nó lực lượng tôi nghĩ về những gì tôi đang làm.Tôi có thể thấy bản thân mình vô tình ghi đè đăng ký 0 nếu tôi bị phân tâm hoặc cố gắng làm điều gì đó khác.

2

Nếu bạn muốn xóa văn bản mà không ảnh hưởng đến thanh ghi chính (chưa đặt tên), hãy xóa văn bản của bạn vào "thanh ghi lỗ đen", được gọi là "_. Thực hiện điều này qua "_D. Sau đó, thanh ghi chưa được đặt tên sẽ không bị ảnh hưởng và bạn có thể dán văn bản đã được rút trước đó của bạn như bình thường.

Xem :h quote_.

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