Sao chép, xóa, sau đó dán vào Vim


15

Tôi mới bắt đầu với Vim ngày hôm qua và gặp khó khăn trong việc hiểu bản sao và dán. Tôi hiểu để sao chép tôi vào chế độ trực quan, đánh dấu và sau đó kéo dài. Sau đó tôi chuyển đến dòng tôi muốn dán vào, nhưng thường thì tôi không cần phải xóa một số văn bản khỏi dòng này. Tôi làm điều này bằng cách sử dụng xhoặc dw. Điều này sau đó dẫn đến bản sao gốc của tôi bị ghi đè ( xdwdường như bị cắt). Làm thế nào để tôi có được xung quanh này?

Để đưa nó vào một ví dụ

$foo = $this->foo->property;
thislineuses($foo);

Vì vậy, với đoạn mã trên tôi sao chép $this->foo->property, sau đó tôi muốn đi vào dòng 2, xóa $foovà dán. Vấn đề của tôi là khi tôi xóa $footừ dòng 2 thì đây là thứ được dán thay vì $this->foo->property.

Câu trả lời:


16

Hãy nhìn vào :h copy-move. Yank hoặc xóa mặc định đi vào một nơi gọi là thanh ghi (một thanh ghi có tên "). Nếu bạn cần xóa một số văn bản trước khi dán, bạn cần tránh ghi đè đăng ký x, như bạn đã phát hiện ra. May mắn thay, bạn có thể sử dụng bất kỳ chữ cái hoặc số khác để đặt tên cho một đăng ký khác.

  • "ayy(kéo một dòng vào đăng ký a)
  • x, ddv.v. (xóa một số văn bản vào thanh ghi không tên, ")
  • "ap(dán văn bản từ đăng ký a)

9

Nếu vấn đề là bạn chỉ cần thay thế một số textbằng một số text2, sau đó, chỉ cần làm nổi bật và kéo dài text2. Sau đó tô sáng textvà nhấn phoặc Pđể dán text2vào vị trí text.

Hướng dẫn nhanh hơn cho một số lệnh vim phổ biến là http://www.catswhocode.com/blog/100-vim-commands-every-programmer-should-ledge

Thưởng thức!

Chỉnh sửa: lưu ý rằng pdán văn bản sau con trỏ và Ptrước con trỏ.


điều này là tốt bởi vì bạn không phải suy nghĩ về các thanh ghi trung gian để kéo vào. nó chỉ hoạt động.
Jon Schizing

7

Bạn có thể sao chép vào một thanh ghi có tên "ayw, xóa và sau đó dán từ thanh ghi có tên "ap.

Tuy nhiên, việc thay đổi thứ tự bạn thực hiện thường dễ dàng hơn. Thực hiện dán và sau đó thực hiện xóa hoặc xóa và sau đó thực hiện sao chép / dán.

Ngoài ra, bạn có thể xóa vào thanh ghi lỗ đen "_d. Xem /programming//q/54255/70863


3

Bạn có nhiều thanh ghi khác nhau mà bạn có thể sử dụng để giữ các giá trị văn bản khác nhau. Nếu bạn muốn lưu văn bản vào một thanh ghi khác với nơi văn bản bị xóa sẽ đi (nghĩa là từ việc sử dụng xhoặcd w ), hơn là sử dụng như sau:

Để lưu văn bản trong đăng ký a:

  • nhấn " a[lệnh yank và chuyển động] (lưu văn bản vào thanh ghia )
  • đi đến nơi bạn muốn dán văn bản
  • nhấn " a p(dán văn bản từ đăng ký a)

Bạn có thể sử dụng một thanh ghi cho mỗi chữ cái trên bàn phím và mỗi số. Xóa văn bản sẽ không sử dụng các thanh ghi đó, vì vậy văn bản sẽ vẫn còn trong sổ đăng ký cho đến khi bạn kết thúc phiên của mình hoặc đặt thủ công vào lúc khác.


0

Bạn không phải làm nổi bật toàn bộ dòng nếu bạn sử dụng v(trái ngược vớiV ) chế độ trực quan. Nếu đó là những gì bạn đang yêu cầu.

Nếu bạn đang nói về việc sửa đổi văn bản sao chép, thì trước tiên bạn sao chép và xóa các phần.

Và nếu bạn muốn sao chép, sau đó sửa đổi bản gốc và sau đó dán, Sau đó, bạn có thể kéo vào đăng ký khác. Giống như "2y, sau đó sửa đổi, sau đó đi nơi khác và "2p.

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.