2013-06-29 25 views
5

Tôi bắt đầu sử dụng vim trong một tuần và nhiều thứ vẫn còn mới đối với tôi. Trong quá trình nghiên cứu, tôi thấy Unite.vim rất tuyệt vời. Tuy nhiên, tôi không thể quản lý để có được lệnh này làm việc:Unite.vim file_rec/async

nnoremap <leader>f :<C-u>Unite -start-insert file_rec/async. 

Tôi nhìn vào tập tin doc và nó nói như sau:

file_rec/async Tương tự như | đoàn kết-source-file_rec |, nhưng có được tệp không đồng bộ.

Lưu ý: Nguồn này yêu cầu vimproc.

Lưu ý: Nguồn này yêu cầu lệnh "ag" hoặc "find".

Lưu ý: Lệnh "tìm" Windows không được hỗ trợ.

Tôi đang sử dụng cửa sổ vim và không tìm ra cách để có Ag hoặc find lệnh tương thích (tôi đoán nó sẽ cho Mac/Linux) Bất kỳ hướng dẫn sẽ được đánh giá cao. Tks :)

+6

Tôi là tác giả của unite.vim. Bạn nên đăng vấn đề này trong các vấn đề unite.vim. https://github.com/Shougo/unite.vim/issues Tôi sẽ kiểm tra. –

Trả lời

10

Tất cả điều này là giả sử bạn có Cygwin, và vim với mầm bệnh quản lý plugin của bạn:

Trước khi bạn sử dụng lệnh file_rec/async, bạn cần phải có vimproc, bởi vì những gì xảy ra là Unite chạy tìm kiếm trong quá trình khác, và sau đó tìm kiếm thông qua các kết quả với quá trình vim của bạn:

mkdir -p ~/.vim/bundle 
git clone https://github.com/Shougo/vimproc.vim.git ~/.vim/bundle/vimproc.vim 
cd ~/.vim/bundle/vimproc.vim 
make -f make_cygwin.mak # <-- This is directly from the vimproc readme 

Tiếp theo, đảm bảo rằng nó hoạt động bằng cách chạy vi, và ở trong chế độ lệnh và nhập:

:Unite -start-insert file_rec/async 

Nếu thành công, sau đó tôi sẽ tư vấn cho bạn để thiết lập liên kết của bạn trong ~/.vimrc như thế này:

nnoremap <C-u> :Unite file_rec/async<cr> 

Bắt ag trên máy tính của bạn có thể khó khăn, như các tài liệu nói rằng đó là "phức tạp" và tư vấn cho bạn để cài đặt một người quản lý gói cho các cửa sổ và một số libs: https://github.com/ggreer/the_silver_searcher/wiki/Windows

Tuy nhiên, nếu bạn quản lý để có được ag trên máy tính của bạn, đây là cấu hình tôi đã nhận được nó để làm việc với Unite.vim với trong ~/.vimrc tôi:

" Use ag for search 
if executable('ag') 
    let g:unite_source_grep_command = 'ag' 
    let g:unite_source_grep_default_opts = '--nogroup --nocolor --column' 
    let g:unite_source_grep_recursive_opt = '' 
endif 
+0

Tks @Nthalk, chính xác như Shougo (tác giả Unite) đã cho tôi thấy ngày khác;) – babygau

1

Ag (còn gọi là Silver Searcher) là một tiện ích như ack, bạn có thể tìm thấy nó here, cũng có vẻ là một chuyên Windows port.

Hoặc, bạn có thể thử GNU tìm Cổng Windows từ unxutils project hoặc sử dụng Cygwin cho Windows.

+0

Tôi bây giờ có thể sử dụng 'tìm lệnh' nhờ cygwin. Tuy nhiên, tôi tiếp tục chạy vào lỗi gây phiền nhiễu này: 'Lỗi xảy ra trong async_gather_candidates! Tên nguồn là file_rec/async'. Tôi chỉ phát hiện ra rằng 'Unite.vim' không thể đọc được một số thư mục cửa sổ (tôi không biết tại sao), và nó có thể dẫn đến lý do mà không cho phép nó đi qua. Không biết cách khắc phục sự cố này, tôi có thể phải quay lại 'CtrlP': ( – babygau

0

Nhận vimproc neccesary dll từ http://www.kaoriya.net/software/vim/. Trên trang web có 32 và 64bits lượt tải xuống phiên bản.

Bên trong mỗi nén có một thư mục plugins (ví dụ với 64bits): "vim74-kaoriya-win64-20150628.zip \ vim74-kaoriya-win64 \ plugins \ vimproc \ autoload \ "nơi bạn có thể tìm thấy nó mà không cần biên dịch.

Để sử dụng ag windows port như @Ingo Karkat nói.

LƯU Ý: ag bị tìm kiếm trên đường dẫn dài hơn 256 ký tự (tại thời điểm này). Sử dụng platinum searcher nếu đó là vấn đề trong trường hợp của bạn.