2010-11-19 37 views
19

Tôi đang cố sao chép văn bản từ cụm từ tìm kiếm vim của mình. Tôi dành một chút thời gian công bằng để xây dựng cụm từ thông dụng cho tìm kiếm sed & thay thế. Vì regex của tôi thường khá phức tạp, tôi muốn xây dựng nó trong một tìm kiếm trước khi thực hiện:% s/regex/new text/gSao chép từ cụm từ tìm kiếm vim

Trong thiết bị đầu cuối vim, tôi có thể sao chép regex mới của mình từ dòng tìm kiếm bằng cách sử dụng chuột. Tôi muốn sử dụng gvim càng nhiều càng tốt, nhưng nó không cho phép nhấp chuột phải để tôi sao chép.

Bất kỳ ý tưởng nào làm cách nào để đưa cụm từ tìm kiếm vào bộ đệm?

Cảm ơn,

Andrew

Trả lời

32

Ở chế độ lệnh (bạn đang ở chế độ bình thường), bạn có thể làm ctrl-R /, sẽ mở rộng đến cụm từ tìm kiếm cuối cùng của bạn (các mục yêu thích ctrl-R khác) cho bộ đệm yank hoặc% cho đường dẫn đầy đủ của cửa sổ hiện tại)

Bạn thực sự không cần thực hiện điều đó. Nếu bạn bỏ cụm từ tìm kiếm cho: s, bạn sẽ muốn sử dụng điều cuối cùng bạn đã tìm kiếm./searchregex, và sau đó ngay sau khi thực hiện:% s // replaceregex/và nó sẽ sử dụng regex tìm kiếm để thay thế

15

Sử dụng q: để mở một cửa sổ có thể chỉnh sửa chứa lịch sử dòng lệnh của bạn. Từ đó bạn có thể sử dụng tất cả các bộ công cụ Vim thông thường của bạn để sao chép/dán/etc.

Đối với đối tượng địa lý tương đương liên quan đến lịch sử tìm kiếm, hãy nhập q/.

0

Bạn có thể sao chép văn bản giữa các thanh ghi bằng cách sử dụng :let, ví dụ như sao chép cụm từ tìm kiếm cuối cùng vào sổ đăng ký b:

:let @[email protected]/ 

Sau đó, sử dụng ctrl-R b để chèn nó như trong câu trả lời của Matt Briggs. Tất nhiên đó là không cần thiết khi bạn có thể chèn nó trực tiếp sử dụng ctrl-R / (trong chèn hoặc chế độ cũ) hoặc "/p (trong chế độ bình thường), nhưng với bản đồ này:

nnoremap <silent> y/ :let @"[email protected]/<CR> 

bạn có thể gõ y/ để sao chép cuối cùng cụm từ tìm kiếm vào thanh ghi chưa đặt tên để dán dễ dàng. Bạn có thể sử dụng * đăng ký thay vì sao chép vào clipboard hệ thống và có văn bản cung cấp cho ứng dụng khác:

nnoremap <silent> y/ :let @*[email protected]/<CR> 

Xem

:help 'clipboard' 
:help registers 

để biết thêm về đăng ký Vim và sử dụng clipboard của hệ thống.

+1

ánh xạ ở chế độ bình thường không yêu cầu ' 'sau': '. '{x, s, v} map' làm. – Benoit

1

q/ hiển thị lịch sử tìm kiếm. Đối với hành động ngược lại của việc sao chép chuỗi từ bộ đệm bình thường của bạn vào bộ đệm lệnh hoặc bộ đệm tìm kiếm, không cho phép sử dụng bình thường p, hãy sử dụng Ctrl-R 1 để dán.

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