2011-12-21 49 views

Trả lời

17

Trong chế độ chèn bạn có thể sử dụng CTRL-R để chèn nội dung của thanh ghi Vim. Theo mặc định, văn bản được sao chép được đặt trong thanh ghi chưa đặt tên ", do đó, để chèn văn bản đó, bạn sẽ nhập <C-R>" ở chế độ chèn. Lời nhắc tìm kiếm sử dụng Command-line mode có riêng CTRL-R hoạt động gần như giống hệt với chế độ Chèn.

Vì vậy, nếu tôi vừa nhấn mạnh văn bản foo, nhập /<C-R>" sẽ tìm kiếm văn bản foo khi tôi nhấn enter.

+0

cảm ơn bạn, nó hoạt động tốt :) –

+1

nghiêm chỉnh nói điều này không phải là chèn nhưng ở chế độ dòng lệnh. Và về điều này: [xem câu trả lời này] (http://stackoverflow.com/questions/3997078/how-to-paste-text-into-vim-command-line/3997110#3997110) giải thích về thanh ghi sâu hơn . – Benoit

+0

@Benoit Tôi biết phải có một số tên cho chế độ đó. Đã cập nhật câu trả lời của tôi. –

2

Tôi có bản đồ này được định nghĩa trong vimrc của tôi, nó maps * để xác định mô hình tìm kiếm như những gì hiện đang được đánh dấu (thoát tất cả các nhân vật nguy hiểm tiềm năng, và chuyển đổi một không gian trong những gì được đánh dấu với bất kỳ chuỗi các không gian)

xnoremap * :<C-U>let old_reg=getreg('"')|let old_regtype=getregtype('"')<CR>gvy/<C-R><C-R>=substitute(substitute(escape(@", '/\.*$^~['), '\s\+', '\\s\\+', 'g'), '\_s\+', '\\_s*', 'g')<CR><CR>gV:call setreg('"', old_reg, old_regtype)<CR>:let v:searchforward=1<CR> 

Để sử dụng, hãy bắt đầu chế độ trực quan với v và sau đó tô sáng những gì bạn muốn tìm kiếm và nhấn * không y.

Tất nhiên bạn có thể ánh xạ # để tìm kiếm ngược (giống hệt nhau ngoại trừ việc v:searchforward nên được đặt thành 0.

1
:set hls 
:vmap * y:let @/ = @"<CR> 
  • set hls (Hight tìm kiếm ánh sáng)
  • v =>hjkl (chọn một cái gì đó)
  • nhấn *, sao chép văn bản đã chọn vào reg "
  • bộ nội dung của reg / như "
  • báo chí n/N để điều hướng
0

Nếu bạn chỉ quan tâm đến các tìm kiếm, bạn có thể sử dụng phương pháp cheat tôi sử dụng. Yank một từ qua v hay y + w, sau đó thực hiện lệnh

:%s//XYZ/gc 

này sẽ tìm kiếm cuối cùng đã tìm kiếm lời. Sau đó, khi bạn tìm thấy nó, nó sẽ yêu cầu xác nhận thay thế bằng XYZ và tất cả những gì bạn phải làm là nhấn q để thoát.

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