Bạn có thể sử dụng lệnh grep của Vim để tìm kiếm tất cả các tệp trong dự án của bạn:
:grep! "\<<cword>\>" . -r
:copen
Chúng ta hãy đặt nó trong một keybind:
nnoremap <F4> :grep! "\<<cword>\>" . -r<CR>:copen<CR>
Tôi thấy tìm kiếm toàn dự án một khóa này là vô giá khi tôi đang khám phá một cơ sở mã lớn không quen thuộc.
\<
và \>
là các chuỗi regrec chỉ ra sự bắt đầu và kết thúc của một từ, vì vậy bạn sẽ không nhận được một phần khớp. ( -w
Tùy chọn grep có thể là một cách khác để đạt được điều này.)
Tuy nhiên, đây là một tìm kiếm không thông minh , vì vậy nó có thể tạo ra kết quả dương tính giả nếu cùng một từ xuất hiện trong bối cảnh không liên quan.
Thay vào đó , thực tế, tôi sử dụng phiên bản sửa đổi của plugin grep.vim . Điều này hơi thân thiện hơn để sử dụng:
- Nó cho phép bạn chỉnh sửa mẫu tìm kiếm và dòng lệnh grep (để bạn có thể nhắm mục tiêu các thư mục cụ thể như
src/ lib/
thay vì .
) và ghi nhớ các thay đổi.
- Tôi đã thêm hỗ trợ cho csearch của Google . Điều này có thể nhanh hơn nhiều so với grep vì nó xây dựng một chỉ mục các từ thay vì quét từng tệp mỗi lần. Đáng chú ý, csearch sử dụng một tiêu chuẩn regrec hơi khác nhau, do đó
\b
phải được sử dụng thay vì \<
và \>
.
Tôi cấu hình nó và loại trừ một số tập tin tiêu chuẩn như thế này .
Để truy cập nhanh, tôi tạo hai keybinds . F3cho phép tôi chỉnh sửa dòng lệnh, F4sử dụng dòng lệnh được cấu hình trước đó mà không cần thêm bất kỳ tổ hợp phím nào. Cơ chế này khá xấu, và có thể sử dụng một số dọn dẹp, nhưng nó đã phục vụ tốt cho tôi.