2016-07-15 14 views
9

Có một vài điều tôi chưa hiểu cách VIM.Làm cách nào để tìm kiếm trong tất cả các tệp của dự án của tôi bằng VIM?

Một trong số đó đang tìm kiếm trong một dự án như vậy (sử dụng VIM trong Atom):

enter image description here

tôi sử dụng CtrlP hiện cho tên tập tin, nhưng những gì về nội dung?

Tôi làm cách nào để tìm kiếm bằng chuỗi và sau đó xem qua danh sách tất cả các lần xuất hiện bằng cách sử dụng các plugin VIM và/hoặc VIM?

+2

Cài đặt [ack] (http://beyondgrep.com/) và/hoặc [ag] (http://geoff.greer.fm/ag/), và sử dụng [CtrlSF] (https://github.com/dyng/ctrlsf.vim) plugin. Bạn sẽ không nhìn lại. –

Trả lời

12

Tôi đã tìm thấy một giải pháp tốt hơn cho việc này: FZF

Nó chỉ đơn giản tìm kiếm thông qua tất cả mọi thứ trong dự án của bạn không đồng bộ bằng cách sử dụng lệnh :Ag.

enter image description here

+0

Lưu ý: điều này đòi hỏi phải có trình cài đặt silver_searcher cũng như https://github.com/ggreer/the_silver_searcher –

6

Sử dụng :grep hoặc :vimgrep để tìm kiếm nội dung tệp. Kết quả được đưa vào "danh sách vị trí" mà bạn có thể mở bằng cách nhập :cwNhập.

Cú pháp cho :grep là, theo mặc định, giống như lệnh grep(1):

:grep 'my pattern.*' /path/to/dir 

Theo mặc định nó sẽ tìm kiếm thư mục hiện hành (:pwd).

Sự khác biệt lớn giữa :grep:vimgrep:vimgrep (:vim cho ngắn) sử dụng biểu thức thông thường Vim-tương thích, trong khi :grep sử dụng bất cứ biểu thức thông thường &grepprg sử dụng của bạn.

Bạn có thể sử dụng chương trình tùy chỉnh bằng cách đặt &grepprg thành điều gì đó khác. Cá nhân tôi thích ack sử dụng regex tương thích Perl.

+0

Có, và những gì về danh sách các lần xuất hiện? – Sem

+0

@Sem Tôi đã mở rộng câu trả lời của mình để triệt để nhất có thể mà không quá sâu vào nó. – amphetamachine

+0

Cảm ơn, tôi đang cố gắng hết mình ngay bây giờ :) – Sem

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