2009-10-21 24 views
11

Tôi đã đọc đống blog về sự thiếu hoàn toàn được cho là tuyệt vời của Vim, và dù tôi có làm gì tôi cũng không thể làm cho nó hoạt động thỏa đáng. Nó đã cho tôi lứa tuổi để tìm ra rằng phiên bản của ctags được cài đặt sẵn trên hệ thống của tôi là emacs một, và không có tùy chọn --recurse, nhưng bây giờ tôi đã chạy ctags-exuberant trên bản sao của OpenJDK của tôi nguồn để cố gắng để có được một số loại hoàn thành mã đi, Vim treo bất cứ khi nào tôi cố gắng gọi nó với [Cn] hoặc [Cp].Vim omnicomplionion cho Java

Tất cả những gì tôi thực sự muốn là một thứ hoạt động như hoàn thành mã trong Eclipse; Tôi thích Vim như là một trình soạn thảo, nhưng Eclipse chỉ có những tính năng bổ sung ngoài hộp mà Vim có vẻ thất bại. Eclipse với một plugin vi-mode không đặc biệt hữu ích cho tôi, và nó là quá nhiều của một bộ nhớ và CPU hog được sử dụng bất kỳ; eclim không hoàn toàn thích tôi.

Bất kỳ ai cũng có thể đề xuất cách đơn giản hơn để hoàn thành một số loại mã hoạt động trong Vim có thực sự hoạt động không?

Trả lời

8

Đây là một "JDE" tính năng cho vim: http://www.vim.org/scripts/script.php?script_id=1213 Một trong những tính năng được liệt kê là "Mã hoàn thành (làm việc cho java và jsp, taglib, html, xml, xsl, XSD) (VIM 7.0 bắt buộc)"

Và đây là tập lệnh tự động hoàn thành Java: http://vim.sourceforge.net/scripts/script.php?script_id=1785

Đây không phải là Java, nhưng tôi thấy nó khá rõ ràng và dễ hiểu; có lẽ nó có thể đáng đọc. Đây là một công thức thiết lập tự động hoàn thành cho Drupal. Tập lệnh AWK tùy chỉnh tạo từ điển tự động hoàn thành cho vim. http://www.thingy-ma-jig.co.uk/blog/18-08-2009/drupal-autocomplete-vim

Chúc may mắn.

+1

Cảm ơn các đề xuất của bạn. Bạn đã thử JDE và javacomplete chưa? Sở thích của bạn là gì? Tôi đã thử javacomplete nhưng nó không luôn luôn làm việc cho tôi (chưa đào sâu vào lý do tại sao). Tôi đang đi để có một cái nhìn tại JDE! – Hannes

1

Có cùng một mong muốn, đã hoàn thành nó bằng cách sử dụng eclim. Hoạt động thực sự thực sự tốt.

5

Tôi đã có một đi với eclim:

http://eclim.sourceforge.net/

Một thời gian trước, nó về cơ bản chạy nhật thực ở chế độ nền và sau đó cung cấp một plugin vim cho phép bạn nhận được ở tất cả các chức năng của nhật thực toàn phần bên trong vim. Vì vậy, bạn có thể làm refactoring, hoàn thành vv Nó có vẻ làm việc khá tốt nếu bạn không nhớ chạy một quá trình nhật thực khổng lồ trong nền trên hệ thống của bạn.

Tôi đã hoàn thành công việc khá tốt trong C++ (Tốt hơn so với Vis stud anyway) nhưng chưa bao giờ có nhiều may mắn với java. Những ngày này tôi có xu hướng sử dụng nhật thực hầu hết thời gian nhưng tôi có gvim --remote thiết lập như là một lệnh bên ngoài trong nhật thực để tôi chỉ có thể lau bộ đệm hiện tại vào vim bất cứ lúc nào tôi muốn.

+1

Nhân tiện, đoạn cuối cùng được đề cập đến trong quá trình hoàn thành omni của vim, không phải là eclim. – Benj

1

Tôi đã tìm kiếm điều này cũng như tôi đang xem xét di chuyển từ nhật thực đến vim. Các giải pháp tốt nhất tôi đã tìm thấy cho đến nay là mang vim đến nhật thực với vrapper (http://vrapper.sourceforge.net/). Nó mang lại rất nhiều tính năng của vim cho trình chỉnh sửa nhật thực và bạn vẫn có thể sử dụng tính năng tự động hoàn thành và tất cả các tính năng khác của Eclipse.

Tôi vẫn quan tâm đến việc di chuyển hoàn toàn, nhưng có vẻ như khó đánh bại nhật thực cho môi trường phát triển java. (chỉ cần ghét chi phí cho nhật thực!)

+0

Gợi ý: vrapper nó có hoàn thành [C-p].Bạn chỉ cần vô hiệu hóa lệnh in (nhấn CTRL + SHIFT + L, tìm kiếm CTRL + P). Ai đã từng cần in mã? – Dacav

+0

Nói chung tôi nhận thấy rằng bạn có thể nhận được một hành vi rất giống vim bằng cách loại bỏ các ràng buộc khóa mặc định, có ưu tiên hơn các khóa được xác định bởi vrapper. – Dacav