2012-04-04 27 views

Trả lời

18

* đi vào khớp từ kế tiếp và # đi vào từ khớp trước. * rất hữu ích, đôi khi được gọi là siêu sao siêu sao.

6

*# là bạn của bạn (về phía trước và hướng ngược tương ứng)

5

Để tìm kiếm từ hiện tại dưới con trỏ sử dụng '*'.

để tìm kiếm ngược cho con trỏ từ hiện trạng sử dụng '#'

4

Trong khi tất cả các câu trả lời ở đây là chính xác, tôi nghĩ rằng nó có thể hữu ích để cung cấp thông tin nhiều hơn một chút.

Điều gì * thực sự là thực hiện tìm kiếm chuyển tiếp cho \<word-under-the-cursor\>. Vì đây chỉ là một thao tác tìm kiếm, bạn có thể điều hướng tiến lên và lùi lại tới lần xuất hiện tiếp theo bằng cách sử dụng nN. Điều này cũng có nghĩa là tìm kiếm trước đó của bạn bị mất. # chính xác giống như * ngoại trừ nó thực hiện tìm kiếm ngược lại.

\<\> trong chuỗi tìm kiếm là các ranh giới từ trong ngôn ngữ regex của vim, điều làm cho công việc này trở nên độc đáo. Nó cũng quan trọng cần lưu ý rằng những gì được coi là một "từ" được xác định bởi các tùy chọn iskeyword. Xem :help word để biết thêm thông tin.

+0

Cảm ơn. Có cách nào để chọn từ ** w/o ** ranh giới không? Đó là, tôi có một từ để tìm kiếm, xuất hiện như một từ phụ ở nhiều nơi tôi muốn tìm. Đối với exampe: tìm "ngày" và khớp với "Chủ nhật", "Thứ Hai". – ysap

+0

Đã khá lâu rồi kể từ khi tôi sử dụng vim rộng rãi, nhưng tôi không nhớ một cách để làm điều này mà không cần thêm ánh xạ của riêng bạn. Nội dung như ": nnoremap *: hãy để @/= mở rộng ('') bình thường! N " có thể. –

+1

Cảm ơn và xin lỗi, tôi đã cập nhật nhận xét này. Tôi hỏi câu hỏi và tìm thấy câu trả lời ở đây; https://stackoverflow.com/q/47063402/274579 – ysap

2

gd và các biến thể của nó cũng rất tiện dụng. Nó hoạt động hơi khác với *, trong đó nó tìm kiếm khai báo cục bộ của từ dưới con trỏ (hoặc khai báo chung nếu không có địa phương nào tồn tại). Sau đó, bạn có thể tìm kiếm thông qua kết quả với n như bạn có thể với siêu sao và sẽ bỏ qua nhận xét. Nó có thể hữu ích khi bạn đang chỉnh sửa mã.

:help gd 
Các vấn đề liên quan