Trực quan chọn kết quả tìm kiếm hiện tại


9

Tôi đã hlsearchthiết lập, nhưng đôi khi nó khiến tôi nghĩ rằng tôi có thuật ngữ tìm kiếm được chọn một cách trực quan và có thể nhấn cđể thay đổi nó.

Thuật ngữ được tìm kiếm có thể không phải là một số lượng dễ dàng các chữ cái, từ, thậm chí các dòng - và dù sao, tôi không muốn đếm.

Có cách nào để vh(hoặc ch), giả sử, hchạy ở đâu cho đến khi việc tô sáng hiện tại dừng lại?

Câu trả lời:


14

Bạn có thể sử dụng gnchuyển động cho điều đó, nó chọn phần tử tìm kiếm tiếp theo.

Bạn có thể sử dụng nó như vậy:

/foo<CR>
gn            -> select the next "foo"
sbar<Esc>     -> (optional) substitute it with "bar"

Phần thưởng: Để .lặp lại tìm kiếm và thay đổi, hãy sử dụng a cđể thực hiện mọi thứ trong một lệnh:

/foo<CR>
cgnbar<Esc>
...           -> find and change the 3 next foo

1
Tuyệt diệu! Cảm ơn. (Bất cứ ai như tôi nhớ tại sao .sẽ lặp lại toàn bộ hành động và không thể làm cho nó hoạt động - đọc kỹ hơn - ctrước tiên! Không thể yêu cầu tốt hơn.)
OJFord

3
Lưu ý rằng bạn cũng có thể sử dụng gNđể chọn trực quan trận đấu trước đó.
statox

Có gì khác biệt giữa điều này và chỉ cần nhấn nđể có kết quả tìm kiếm tiếp theo?
dùng1717828

nó cũng thay đổi, vì vậy thay vì lặp lại n.(lần xuất hiện tiếp theo, lặp lại sửa đổi), bạn chỉ cần nhấn .(lặp lại sửa đổi, đó là "thay đổi lần xuất hiện tiếp theo")
nobe4

Thật vậy, khi .gọi gn, bản gốc foođã biến mất, vì vậy Vim tìm kiếm tiếp theo foo. Vì vậy, gnnhững gì nsẽ làm được anyway (và nhiều hơn nữa). Nhưng, như với n, lưu ý rằng điều này chỉ hoạt động tốt khi barkhông chứa foo!
joeytwiddle
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.