2008-09-10 28 views

Trả lời

29

Ctrl - P (Nhận trận đấu trước) và Ctrl - N (Nhận Trận đấu tiếp theo) là loại hoàn thành mã giả. Họ về cơ bản tìm kiếm các tập tin (ngược cho Ctrl - P, Tiền đạo cho Ctrl - N) bạn đang chỉnh sửa (và bất kỳ bộ đệm mở, và nếu bạn đang sử dụng TAGS bất cứ điều gì trong tập tin TAG của bạn) cho những từ mà bắt đầu với nội dung bạn đang nhập và thêm danh sách thả xuống. Nó hoạt động đáng ngạc nhiên tốt cho các biến và tên hàm, ngay cả khi nó không phải là intellisense. Nói chung, tôi sử dụng Ctrl - P làm biến hoặc chức năng mà tôi đang tìm thường nằm trong mã. Ngoài ra nếu bạn giữ cùng một bản sao của Vim mở, nó sẽ tìm kiếm các tập tin bạn đã mở trước đó.

+0

này đang làm việc rất tốt cho tôi, nhưng tôi đã gần đây chuyển sang một môi trường phát triển mới. Bây giờ thay vì chỉ tìm kiếm các bộ đệm mở của tôi, có vẻ như tìm kiếm toàn bộ cây nguồn của tôi mất nhiều thời gian - và chỉ thực hiện điều này cho Perl. Làm cách nào tôi có thể xem liệu môi trường mới này có đang sử dụng TAGS không? Tôi đã thử ': tag' và nhận' E73: ngăn xếp thẻ trống '. Có điều gì khác ngoài các thẻ có thể đã được bật không? Ngoài ra môi trường mới có phiên bản vim mới hơn một chút. Tôi muốn có nó chỉ tìm kiếm các bộ đệm mở. – redbmk

7

Vâng, cơ chế hoàn thành chung của Vim là đáng ngạc nhiên tốt, chỉ cần sử dụng Ctrl-N trong chế độ chèn. Ngoài ra, hoàn thành dòng là rất tiện dụng, sử dụng C-x C-l.

Ngoài ra, hãy xem vim script for perl này.

9

Vim 7 hỗ trợ hoàn thành omni.

Ví dụ, tôi có điều này trong vimrc của tôi

autocmd FileType php set omnifunc=phpcomplete#CompletePHP 

và sau đó, khi tôi nhấn Ctrl-x Ctrl-o trong chế độ Insert, tôi nhận được một danh sách thả xuống của khả năng autocomplete.

Đây là một omnicfunc for perl. Không có ý tưởng như thế nào nó hoạt động mặc dù.

3

Ctrl +N

này được giải thích trong cuốn sách Perl Hacks, cùng với cách thực hiện hoàn thành trọn gói. Rat khuyen khich.

3

Đoạn .vimrc ở một trong các câu trả lời khác là hơi sai. Để bật phím tab của bạn thành một chìa khóa tự động hoàn tất, sử dụng mã này:

inoremap <tab> <c-r>=InsertTabWrapper()<cr> 

function! InsertTabWrapper() 
    let col = col('.') - 1 
    if !col || getline('.')[col - 1] !~ '\k' 
     return "\<tab>" 
    else 
     return "\<c-p>" 
    endif 
endfunction 

Bạn có thể tìm thấy điều này, và tấn thủ đoạn vim khác in this thread at Perlmonks --which liên kết đến bài thậm chí nhiều hơn với nhiều hơn nữa tùy chỉnh.

5

Chuẩn CTRL-NCTRL-P hoạt động tốt hơn nếu bạn thêm thông tin sau vào ~/.vim/ftplugin/perl của mình.tập tin vim:

bộ iskeyword + =:

Nó sau đó sẽ tự động hoàn tất tên mô-đun, vv

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