2009-10-21 12 views
11

Czytałem mnóstwo blogów na temat rzekomego wielkiego omijania Vima, a jednak bez względu na to, co robię, nie mogę sprawić, by działał w sposób zadowalający. Zajęło mi wieki odkrycie, że wersja ctags, która jest preinstalowana w moim systemie, była wersją emacsa i nie miała opcji --recurse, ale teraz, gdy uruchomiłem ctags-bujny na mojej kopii OpenJDK źródła próbują uzyskać pewne uzupełnienie kodu, Vim zawiesza się za każdym razem, gdy próbuję go wywołać za pomocą [Cn] lub [Cp].Vim omnicompletion for Java

Wszystko czego naprawdę chcę, to coś, co działa jak uzupełnianie kodu w Eclipse; Lubię Vima jako redaktora, ale Eclipse ma właśnie te dodatkowe funkcje, które Vim wydaje się przegrywać. Eclipse z wtyczką w trybie vi nie był mi szczególnie przydatny, a zbyt duża pamięć i procesor mogły być przydatne; eclim też mnie nie lubi.

Czy ktoś może zaproponować prostszy sposób na uzyskanie kodu w Vim, który faktycznie działa?

Odpowiedz

8

Oto "CDN" cecha dla vim: http://www.vim.org/scripts/script.php?script_id=1213 Jednym z wymienionych cech jest "ukończenie Code (pracuje dla Java i JSP TagLib, HTML, XML, XSL, XSD) (VIM 7.0 wymagany)"

i tu jest skrypt Java autocompletion: http://vim.sourceforge.net/scripts/script.php?script_id=1785

Ten nie jest Java, ale okazało się, że jest dość jasne i zrozumiałe; być może warto ją przeczytać. Oto przepis na ustawienie autouzupełniania dla Drupala. Niestandardowy skrypt AWK buduje słownik autouzupełniania dla vima. http://www.thingy-ma-jig.co.uk/blog/18-08-2009/drupal-autocomplete-vim

Powodzenia.

+1

Dzięki za sugestie. Czy próbowałeś już JDE i javacomplete? Jakie są twoje preferencje? Próbowałem już javacomplete, ale to nie zawsze działa dla mnie (nie rozumiem dlaczego). Muszę rzucić okiem na JDE! – Hannes

1

Miał takie samo pragnienie, spełniło to przy użyciu eclim. Działa naprawdę naprawdę dobrze.

5

miałem iść z eclim:

http://eclim.sourceforge.net/

Jakiś czas temu, to w zasadzie przebiega zaćmienie w tle, a następnie dostarcza plugin vim, który pozwala uzyskać na wszystkich funkcjonalności zaćmienia wewnątrz vim. Więc możesz zrobić refaktoryzację, ukończenie itp. Wydaje się, że działa całkiem dobrze, jeśli nie masz nic przeciwko uruchomieniu ogromnego procesu zaćmienia w tle w twoim systemie.

Mam ukończone działa całkiem dobrze w C++ (Better niż Vis stud i tak), ale nigdy nie miałem dużo szczęścia z java. Obecnie używam zaćmienia przez większość czasu, ale mam gvim --remote skonfigurowany jako zewnętrzne polecenie w czasie zaćmienia, dzięki czemu mogę tylko wycierać bieżący bufor w vim w dowolnym momencie.

+1

Nawiasem mówiąc, ten ostatni akapit odnosi się do vima, który został zbudowany w całości, a nie eclim. – Benj

1

Szukałem tego tak dobrze, jak rozważam przejście od zaćmienia do vima. Najlepszym rozwiązaniem, jakie znalazłem do tej pory, jest doprowadzenie vima do zaćmienia za pomocą vrappera (http://vrapper.sourceforge.net/). Wprowadza on wiele funkcji vima do edytora eclipse i nadal możesz używać autouzupełniania i wszystkich innych funkcji Eclipse.

Nadal jestem zainteresowany przenoszeniem się całkowicie, ale trudno jest pokonać środowisko Eclipse dla środowiska programistycznego Java. (po prostu nienawidź kosztów ogólnych zaćmienia!)

+0

Podpowiedź: vrapper ma ukończenie [C-p].Musisz tylko wyłączyć polecenie drukowania (dwukrotnie CTRL + SHIFT + L, wyszukaj CTRL + P). Kto i tak musi wydrukować kod? – Dacav

+0

Ogólnie zauważyłem, że można uzyskać bardzo podobne do vima zachowanie, pozbywając się domyślnych powiązań klawiszy, które mają priorytet nad tymi zdefiniowanymi przez vrapper. – Dacav