Làm thế nào để thay thế văn bản bên trong () bằng văn bản được kéo mạnh trước đó?


9

Giả sử tôi có văn bản được Fnordkéo dài trước đó và con trỏ của tôi nằm trên Bdòng:

M:mock(Baz)

Làm cách nào tôi có thể thay đổi văn bản bên trong () bằng văn bản được kéo dài trước đó?

Hiện tại, tôi thường mắc lỗi bằng cách thực hiện:

  • di( còn gọi là "xóa bên trong ()"
  • Shift + P

nhưng lại để lại cho tôi văn bản chính xác một lần nữa, vì văn bản đã xóa sẽ được chuyển đến thanh ghi.

Tôi muốn có:

M:mock(Fnord)


1
@Rich Câu hỏi được cung cấp bao gồm trường hợp tổng quát hơn về việc thay thế một từ được đánh dấu. Tôi nghĩ rằng câu hỏi này cụ thể hơn một chút và không thu hút các câu trả lời tương tự.
k0pernikus

Protip: Thanh 0ghi sẽ chứa văn bản được kéo dài cuối cùng. :h quote0
Peter Rincker

1
Ý tưởng tương tự từ câu trả lời được chấp nhận của câu hỏi được đề cập có thể được áp dụng ở đây. Với con trỏ trong ngoặc đơn, chỉ cần nhấn vi)p. Nó giống như trong câu trả lời đó, chỉ với i)đối tượng văn bản thay vì wđối tượng văn bản,
EvergreenTree

1
@ k0pernikus Tôi sợ chúng tôi sẽ phải đồng ý không đồng ý về vấn đề đó. Đối với tôi, phần quan trọng của cả hai câu hỏi là sự thay thế và không phải là đối tượng văn bản được sử dụng để áp dụng nó.
Giàu

Câu trả lời:


13

Bạn có thể sử dụng lựa chọn trực quan để chọn văn bản cần thay thế, sau đó dán lên nó như sau:

vi(p

vi(chọn Baz (vì nó được đặt trong ngoặc đơn), pdán Fnord lên trên nó.

Tuy nhiên, điều này sẽ đưa Baz đến đăng ký sau khi dán, có thể không phải là điều bạn muốn.


10

Trừ khi bạn chỉ định một thanh ghi, p(hoặc P) sẽ sử dụng thanh ghi cuối cùng được điền. Thanh ghi không tên ""chứa văn bản đã bị xóa hoặc bị xóa gần đây nhất (trừ khi một thanh ghi khác được chỉ định, ví dụ như với "ay), nhưng chúng cũng được sử "0dụng cho yanks hoặc "1để xóa / thay đổi. Xem sổ đăng ký .

Nếu văn bản cuối cùng được kéo theo ybạn có thể dán nó từ thanh 0ghi với "0P. Nếu nó đã bị xóa, bạn có thể truy cập nó với 2đăng ký với "2P( "1bây giờ Baz).

Ngoài ra, bạn có thể tránh làm phiền với các thanh ghi của mình và xóa vào thanh ghi lỗ đen"_ :

"_di(P

3

Nếu cài đặt plugin là một tùy chọn, bạn có thể sử dụng yankstack.vim . Sau đó, bạn có thể giữ lại cho bạn quy trình làm việc hiện tại:

Hiện tại, tôi thường mắc lỗi bằng cách thực hiện:

  • di (còn gọi là "xóa bên trong ()"
  • Shift + P
  • Alt + p - chu kỳ cho yank trước

1

Giả sử "Fnord" được đăng ký, bạn có thể làm (với con trỏ ở đầu dòng) f(ci(<c-r>a

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.