2010-03-03 37 views
37

Tôi đang tìm cách để làm cho Vim có khả năng mở tệp bằng cách tìm kiếm tên mờ của nó.Mở tệp bằng Vim bằng cách sử dụng Tìm kiếm mờ

Về cơ bản, tôi muốn có thể xác định dự án một lần và sau đó có phím tắt sẽ cho tôi một địa điểm để nhập tên tệp và sẽ khớp với bất kỳ chữ cái nào khớp với nhau.

Loại chức năng này tồn tại trong hầu hết các trình chỉnh sửa mà tôi đã thấy, nhưng đối với cuộc sống của tôi, tôi không thể hiểu cách để Vim làm điều này.

Lưu ý rằng tôi đang tìm kiếm thứ gì đó mà sẽ không yêu cầu tôi có bất kỳ ý tưởng nào trong tệp thư mục của tôi. Tôi chỉ muốn để có thể mở nó bằng tên tập tin, bất kể những gì thư mục nó trong.

Cảm ơn

Trả lời

51

Có hai plugin vim tuyệt vời cho việc này.

ctrlp:

  • Được viết bằng VimL tinh khiết
  • trình khá nhiều ở khắp mọi nơi
  • Hỗ trợ Finders tùy chỉnh để cải thiện hiệu suất
  • Phổ biến nhất Plugin tìm kiếm mờ cho Vim

Command-T:

  • Được viết bằng C, VimL và Ruby
  • nhanh ra khỏi hộp
  • Yêu cầu +ruby hỗ trợ trong Vim
  • Khuyến nghị phiên bản Vim> = 7.3

EDIT:

Tôi sử dụng CtrlP với ag làm công cụ tìm kiếm tùy chỉnh của mình và nó cực kỳ nhanh chóng (ngay cả trên các dự án lớn) và rất di động.

Một ví dụ của việc sử dụng ag với CtrlP:

if executable('ag') 
    " Use Ag over Grep 
    set grepprg=ag\ --nogroup\ --nocolor 

    " Use ag in CtrlP for listing files. Lightning fast and respects .gitignore 
    let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""' 
endif 
+3

Kể từ khi đăng câu hỏi này, tôi đã chuyển sang sử dụng ctrlp, như có nhiều Vim'ers khác. Bây giờ tôi xem xét nó là trình chuyển đổi tập tin de-factor-switcher (với Command-t close behind). –

+2

Sử dụng ctrlp với lệnh công cụ tìm tùy chỉnh, ví dụ: ack hoặc thậm chí tốt hơn ag (người tìm kiếm bạc). Điều này sẽ thực sự tăng tốc độ tìm kiếm của bạn so với lệnh-t ngay cả khi bạn bật lệnh c find trong đó. Kinh nghiệm của tôi với người canh chừng khá chậm –

+0

Điểm của 'set grepprg' là gì? – hasen

2
+0

Tôi nhìn đó, nhưng nó không có vẻ để làm những gì tôi muốn (có vẻ như nó không tìm kiếm cho tất cả các file trong thư mục) . Tôi chỉ đang thiết lập không chính xác? –

+1

Có thể bạn đang có. Thông thường, tất cả các tệp trong một thư mục và tất cả các thư mục con của nó được bao gồm. –

+0

Ngoài ra: http://stackoverflow.com/questions/1894614/vim-fuzzyfinder-usage-tips-gotchas-how-can-one-make-use-of-this-plugin/1897075#1897075 –

3

CommandT cho Vim là rất nhiều tính năng tương tự như trong TextMate. luồng công việc của tôi bây giờ là

1) mở ra MacVim

2): cd ~/my_project

3) (Tôi có ánh xạ như mô tả trong sự giúp đỡ cài đặt)

4) Cv này tệp để mở tệp theo phân chia dọc hoặc CR để mở phân tách ngang mới.

5) để đóng phân chia, sử dụng: bd (đệm xóa)

6) để chuyển sang bộ đệm khác, tôi có BufferExplorer cài đặt, vì vậy chỉ cần \ được và chọn

Quy trình này được so sánh với TextMate, phải mất một thời gian để làm quen, và tôi vẫn đang học.

+0

Điều này thật tuyệt vời. Có bất kỳ plugin nào như thế này không yêu cầu Ruby và biên dịch không? Ở trên Windows rất nhiều, điều đó thật tuyệt vời. – drozzy

+0

Làm thế nào về https://github.com/Shougo/unite.vim –

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