CTRL-P rất chậm khi không tìm thấy tệp


7

Đôi khi tôi đánh vần sai tên của một tập tin. Vì vậy, giả sử tôi có một tệp được gọi ThisIsAFileNamevà tôi bắt đầu nhập ThisS...Khoảnh khắc tôi viết sai tên tệp (và không có lần truy cập nào), CTRL-P trở nên cực kỳ chậm. Nó hiển thị mỗi chữ cái tiếp theo với tốc độ khoảng 1 ký tự cứ sau 5 giây. Vì vậy, nếu tôi vô tình gõ thêm 6 ký tự, tôi sẽ đợi nửa phút để CTRL-P hoàn tất hiển thị các ký tự này trước khi tôi có thể hoàn tác việc này.

Đây có phải là một cái gì đó xảy ra thường xuyên? Bất kỳ ý tưởng làm thế nào để khắc phục điều này?


Tôi đang đối mặt với cùng một vấn đề ...
Ejaz

Tôi vẫn bị mắc kẹt trong tình huống tương tự. Tôi cố gắng không đánh vần sai, đó là "cách khắc phục" hiện tại của tôi, nhưng nếu có cách khắc phục tốt hơn ở đó, tôi sẽ nghe thấy.
user32421

2
Tôi thấy bài viết này của Doug rất hữu ích. Nó có một phần trên CtrlP. Trích dẫn từ bài viết> Tuy nhiên, chúng tôi có thể yêu cầu CtrlP chạy một lệnh bên ngoài để tìm các tệp phù hợp>. Bây giờ chúng ta đã cài đặt ag, chúng ta có thể sử dụng nó với CtrlP để làm cho> CtrlP trở nên nhanh hơn. Mặc dù tôi đã không thử sử dụng ag, nhưng nó có vẻ là thứ đáng để thử.
RIQ

Ctrl P đã cũ, hãy thử fzf, hiệu suất nhanh hơn đáng kể.
Finn

Tôi đang sử dụng nó với ag trên windows (chậm hơn đáng kể so với Linux khi phát hiện và liệt kê tệp) với kết quả tốt. Nó không phải là ngay lập tức, nhưng đủ tốt để tìm liền mạch các tập tin.
Spidey

Câu trả lời:


1

Bạn có thể bật bộ đệm, nếu nó chưa được kích hoạt:

let g:ctrlp_use_caching = 1

Nó giảm đáng kể độ trễ và lý tưởng nếu không có nhiều thay đổi trong thư mục, tức là không có nhiều tệp mới hoặc bị xóa. Tuy nhiên, khi các tệp được thêm hoặc xóa hoặc đổi tên, chỉ mục tệp sẽ trở nên cũ và nó cần được làm mới (tức là lập chỉ mục lại) bằng cách nhấn ctrl+pvà sau đó F5(hoặc cách khác, nhập :CtrlPClearCachetrong chế độ lệnh).

Tôi thích sử dụng ứng dụng bên ngoài tìm kiếm tệp nhanh hơn và không phải đối phó với bộ nhớ đệm. Tôi khuyên dùng Ag (The Silver Searcher) hoặc ripgrep . Chúng nhanh hơn đáng kể so với công cụ tìm kiếm tích hợp của ctrl-p và việc chuyển đổi công cụ rất dễ dàng.

Ag hoặc Ripgrep cần được cài đặt trước. Và sau đó .vimrc, tôi thêm vào như sau.

Nếu sử dụng ripgrep:

if executable('rg')
    let g:ctrlp_user_command = 'rg %s --files --color=never --glob ""'
    let g:ctrlp_use_caching = 0
endif

Nếu sử dụng ag:

if executable('ag')
  let g:ctrlp_user_command = 'ag -l --nocolor -g "" %s'
  let g:ctrlp_use_caching = 0
endif
  • Trên Windows, Ag dường như chậm hơn và tôi khuyên dùng Ripgrep thay vì Ag.
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.