2011-09-09 8 views
7

Tôi đã trên web cố gắng tìm cách để VIM hoàn thành mã tương tự như PyDev. Nó không có vẻ như nó là có thể!hoàn thành mã nội tại bằng VIM? ... hoặc trình soạn thảo nhẹ khác với tính năng này?

-Tôi đã cố gắng sử dụng tính toàn bộ được đề xuất tại liên kết này: http://blog.dispatched.ch/2009/05/24/vim-as-python-ide/.

-Tôi đã thử một số addons để giảm bớt vấn đề, không có tác dụng.

Chức năng "không đầy đủ" KHÔNG phải là những gì tôi đang tìm kiếm. Nó chỉ mất tất cả các từ trong tệp bạn đang làm việc và sử dụng những từ đó để thử và hoàn thành những gì tôi đang làm. Ví dụ: nếu tôi đã viết:

import numpy 
a_single_array = range(100) 
np.a#[then I hit cntrl+n to code complete] 

Nó sẽ nhổ ra "a_single_array" là có thể hoàn thành - nhưng điều đó là vô lý! Đó không phải là hoàn thành hợp lệ cho "numpy.a ..."

Sự cố ở đây là gì? Tất cả các addon sẽ phải làm là chạy một thư mục (công việc bạn muốn tìm) từ thư mục bạn đang ở và sau đó lọc đầu ra! Điều này không thể là khó khăn! (Tôi cho rằng bạn cũng sẽ phải đọc tệp mà bạn hiện đang chỉnh sửa và lọc cũng như ghi lại các thay đổi về tên ... nhưng đó là khá nhiều!)

Nói về cách dễ dàng ... nếu không có bất cứ điều gì đã được thực hiện, tôi đã nghĩ đến việc viết kịch bản bản thân mình! Bất kỳ hướng dẫn về cách làm điều đó?

Trả lời

7

Không, chức năng hoàn thành omni chính xác những gì bạn đang tìm kiếm.

Bạn đang sử dụng <C-n> thay vì <C-x><C-o>:

  • loại <C-n> & <C-p> để hoàn thành với những lời từ bộ đệm (sau và trước con trỏ tương ứng)
  • loại <C-x><C-o> để hoàn thành phương pháp/tài sản tên

Điều này được giải thích cụ thể trong bài viết bạn đã liên kết:

Trong V7, VIM đã giới thiệu tính năng hoàn thành omni - được cấu hình để nhận biết Python (nếu không, tính năng này chỉ là một plugin) Ctrl + x Ctrl + o mở hộp thoại thả xuống giống như bất kỳ IDE nào khác - ngay cả toàn bộ Pydoc được hiển thị trong một cửa sổ chia nhỏ.

+0

Cảm ơn, tôi đã nhấn nhầm nút. Tôi vẫn gặp sự cố khi có chức năng mà tôi đang tìm kiếm và chuyển sang Spyder (thực sự là một IDE khá nhẹ ... cũng tốt hơn so với Eclipse ít nhất). –

1

Tôi không có ý tưởng về các tùy chọn hoàn thành khác nhau cho Python trong Vim. Nhưng nếu bạn muốn cuộn của riêng bạn mà bạn muốn được tư vấn tốt để nghiên cứu và sửa đổi một trong những cái hiện có, như thế này:

http://www.vim.org/scripts/script.php?script_id=1542

Ngoài ra, nếu tất cả omnicompletion bạn đang làm là liệt kê các từ trong tập tin hiện tại sau đó bạn không có nó được thiết lập đúng cho hoàn thành cụ thể Python. . . . Bạn không chắc chắn các hệ thống hoàn thành Python chuyên nghiệp có được tốt như thế nào, nhưng chúng chắc chắn sẽ cạnh tranh dựa trên các đơn vị Python bên ngoài tệp hiện tại của bạn. . . .

4

Ctrln là chèn hoàn thành.

CtrlxCtrlo là omni-hoàn.

tôi remap omnicompletion để CtrlSpace:

inoremap <C-Space> <C-x><C-o> 

Bạn cũng có thể thử SuperTab.