nó không phải là rõ ràng từ các bài bản gốc những gì bạn có nghĩa là bằng cách "làm việc một cách dễ dàng với nó", nhưng nó thường hữu ích để xem và nhanh chóng chuyển giữa tất cả các kết quả phù hợp trong bộ đệm mà không cần "trích xuất" các kết quả phù hợp với một bộ đệm riêng biệt.
vim đã một grep nội bộ được xây dựng trong. Ví dụ của bạn sẽ là một cái gì đó như thế này (trong vim, %
biểu thị tập tin hiện tại)
:vimgrep /label/ %
này sẽ đưa bạn đến sự xuất hiện đầu tiên và báo cáo có bao nhiêu trận đấu có là. Điều tuyệt vời là bạn có thể nhìn vào tất cả các trận đấu được liệt kê bằng cách mở danh sách lỗi QuickFix sử dụng
:cope
Bây giờ bạn chỉ có thể di chuyển xung quanh và nhấn enter
trên một dòng để nhảy đến vị trí chính xác của trận đấu.
Danh sách lỗi nhanh chóng là chính xác cùng một bộ đệm bạn sử dụng nếu bạn chạy thực hiện từ bên trong vim và trình biên dịch của bạn ném lỗi: nó cung cấp cho bạn danh sách các lỗi và vị trí.
Sau khi bạn đã nhảy đến một vị trí được chỉ bằng quickfix, bạn có thể chuyển tiếp và lùi trong danh sách qua :cn
và :cp
. :ccl
đóng danh sách lỗi.
Bạn cũng có thể mở rộng "lỗi" danh sách của bạn thông qua :vimgrepa /newpattern/ %
hoặc :vimgrepadd
The (tài liệu) caveat là grep nội bộ của vim đó là chậm hơn so với hầu hết các trường grep mẹ đẻ (nhưng bạn làm được nó "miễn phí" trong cửa sổ , ví dụ). Nếu bạn đã cài đặt grep, bạn có thể sử dụng: grep thay vì: vimgrep cho các kết quả tương tự.
trích dẫn :help grep
Vim có hai cách để tìm kiếm trận đấu cho một mô hình : nội bộ và bên ngoài. Lợi thế của grep nội bộ là nó hoạt động trên tất cả các hệ thống và sử dụng các mẫu tìm kiếm Vim mạnh mẽ . An chương trình grep bên ngoài có thể được sử dụng khi Vim grep không làm những gì bạn muốn.
Phương thức nội bộ sẽ chậm hơn, vì tệp được đọc vào bộ nhớ. Các ưu điểm là: - Bộ tách dòng và mã hóa được tự động nhận dạng, như thể một tệp đang được chỉnh sửa. - Sử dụng các mẫu tìm kiếm Vim. Có thể sử dụng các mẫu nhiều dòng. - Khi bổ trợ được bật: các tệp nén và từ xa có thể được tìm kiếm.
Bạn cũng có thể sử dụng danh sách vị trí nếu bạn đã sử dụng danh sách lỗi để xử lý lỗi biên dịch. chỉ cần thêm l
(ví location
) vào đầu của lệnh grep (:lvimgrep
, :lvimgrepa
:lgrep
, :lgrepa
) và sử dụng :lopen
:ln
:lp
:lcl
thay vì :c*
người.
Đối với các lệnh hơn tham khảo ý kiến
:help grep
:help quickfix-window
:help quickfix
:help quickfix-error-lists
ý nghĩa của # đây là những gì? –
@Aman Jain: Tôi sử dụng # để hiển thị số dòng. –