Cách hiệu quả nhất để thay thế toàn bộ bộ đệm?


10

Hiện tại, tôi có hai phương pháp tương tự để thay thế toàn bộ bộ đệm bằng một số văn bản khác (nói trong clipboard).

Phương pháp số 1:

  1. xóa tất cả các dòng : :%d.

  2. dán văn bản: "+P(hoặc tương tự :put+:).

Phương pháp # 2:

  1. Trực quan chọn tất cả các dòng : ggVG.

  2. dán văn bản : "+P.

Tuy nhiên tôi dường như không thể tìm thấy một cách chỉ huy để thực hiện điều đó. Gần nhất tôi tìm thấy là :changelệnh. Nhưng nó dường như không hoạt động tốt với các thanh ghi. Tất nhiên tôi có thể tạo một số chức năng và / hoặc ánh xạ một khóa để làm điều đó. Nhưng trước khi tôi có thể thực hiện tất cả các tùy chỉnh này, tôi muốn chắc chắn:

Có một số lệnh tích hợp để thay thế một loạt các dòng bằng một số văn bản khác không? Giống như, bạn có thể :%replace+thay thế toàn bộ bộ đệm bằng văn bản trong clipboard?


2
Tôi không biết bất cứ điều gì ngoài đỉnh đầu của tôi, nhưng nếu bạn làm điều này rất nhiều, tại sao không tạo ra một ánh xạ / lệnh?
Matt Boehm

5
Hmm, 1,$s/\_./\=@+không phải là một giải pháp: P, :%d|put+gần hơn, nhưng không hoàn toàn ở đó.
Runium

1
Tôi đã quên một dấu sao sau dấu chấm ... 1,$s/\_.*/\=@+, trong đó \_.khớp với bất kỳ ký tự nào kể cả dòng mới.
Runium

2
Bạn phải sử dụng lại bộ đệm, hoặc có thể chấp nhận để bắt đầu một bộ đệm mới không?
200_success

3
Tôi nghĩ Sukminder :%d|put+phù hợp với dự luật. Nó ngắn và đáng nhớ. Các lệnh khác chỉ là quá phức tạp để nhớ và gõ chính xác.
Lie Ryan

Câu trả lời:


2

Bạn có thể làm ggvG<CTRL-G>để trực quan chọn toàn bộ bộ đệm và nhập Select-mode. Đây là cách dễ nhất để thay thế bộ đệm bằng văn bản bạn dự định gõ. Bạn thậm chí có thể tạo một Select-modebản đồ với :smapđiều đó giải quyết vấn đề của bạn.


0

Một cách để thay thế toàn bộ bộ đệm bằng clipboard của bạn có thể thông qua lệnh bên ngoài, ví dụ:

:%!pbpaste
:%!echo my_text

Xem thêm: Chia sẻ clipboard của Mac OS X

Hoặc bằng cách sử dụng thay thế:

:%s/\_.*/\=@+/
:%s/\_.*/my text/

Hoặc sử dụng :%d|put+(như đã đề xuất trong các ý kiến).

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.