Wskazówki jak używać Vima jako Java IDE? [zamknięte]

Jestem uzależniony od Vima, to teraz mój de facto sposób edycji plików tekstowych.

Ponieważ jest to głównie edytor tekstu, a nie IDE, ma ktoś dla mnie triki, które ułatwią mi tworzenie aplikacji Java?

Mam kilka pytań:

  • Jak wywołać zadanie Mavena bez opuszczania vi?
  • Czy Mogę uzyskać Ukończenie kodu?
  • jak podświetlanie składni?

Cokolwiek innego (poza "nie rób tego!"), o którym powinienem wiedzieć?

 183
Author: Keith Pinson, 2008-10-31

7 answers

Kilka porad:

  • Upewnij się, że używasz vim (VI improved). Linux i niektóre wersje Unix symlink vi do vim.
  • możesz uzyskać dopełnienie kodu za pomocą eclim
  • lub możesz uzyskać funkcjonalność vi w Eclipse za pomocą viPlugin
  • podświetlanie składni jest świetne w Vimie
  • Vim ma dobre wsparcie dla pisania małych makr, takich jak uruchamianie ant / Maven buduje

Miłej zabawy: -)

 70
Author: toolkit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-06 08:48:00

Jestem użytkownikiem Vima od lat. Zaczynam od czasu do czasu uruchamiać Eclipse (używając wtyczki vi, która, muszę powiedzieć, ma różne problemy). Głównym powodem jest to, że tworzenie Javy zajmuje sporo czasu...są one po prostu coraz wolniejsze dzięki dodaniu wysoce złożonych struktur kompilacyjnych, takich jak maven. Więc Walidacja zmian zajmuje sporo czasu, co wydaje mi się często prowadzić do ułożenia kilku problemów z kompilacją, które muszę rozwiązać później, a filtrowanie wiadomości commit zajmuje trochę czasu.

Gdy mam za dużą kolejkę problemów kompilacyjnych, odpalam Eclipse. To pozwala mi zrobić ciasto-praca zmian. Jest powolny, brutalny w użyciu i nie jest tak miły dla edytora jak Vim (używam Vima od prawie dekady, więc jest to dla mnie druga natura). Znajduję dla precyzyjnej edycji-konieczność naprawienia konkretnego błędu, konieczność refaktoryzacji jakiegoś konkretnego kawałka logiki, lub coś innego...Po prostu nie mogę być tak skuteczny w edycja w Eclipse jak Mogę w Vim.

Również wskazówka:

:set path=**
:chdir your/project/root

To sprawia, że ^wf na nazwie klasy jest bardzo ładną funkcją do nawigacji po dużym projekcie.

W każdym razie, chudy jest, kiedy muszę dodać dużo nowego kodu, Vim wydaje się spowolnić mnie po prostu ze względu na czas spędzony na uganianiu się za problemami kompilacji i podobnych rzeczy. Kiedy jednak muszę znaleźć i edytować konkretne źródła, Eclipse czuje się jak młotek. Wciąż czekam na magiczne IDE dla Vima. Było znam trzy poważne próby. Istnieje czysta wtyczka typu VIML IDE, która dodaje wiele funkcji, ale wydaje się niemożliwa do użycia. Jest eclim, z którym miałem wiele problemów. I jest plugin do Eclipse, który faktycznie osadza Vima. Ta ostatnia wydaje się najbardziej obiecująca dla naprawdę poważnej pracy Java EE, ale nie wydaje się działać zbyt dobrze lub naprawdę integrować wszystkie funkcje Eclipse z wbudowanym Vimem.

Rzeczy jak dodać brakujący import z naciśnięciem klawisza, kod hilight z pisanie problemów itp. wydaje się być nieocenione z twojego IDE podczas pracy nad dużym projektem Java.

 30
Author: Arjan Tijms,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-22 08:22:29
  • Jak wywołać zadanie maven bez opuszczania vi?

    Maven nie różni się niczym od innych poleceń powłoki:

    :!mvn

    Możesz :set makeprg=mvn Jeśli masz już ulubione mapowanie klucza dla :make.

  • Czy Mogę uzyskać Ukończenie kodu?

    Tak, eclim jest świetny, pomost między wydajnością edycji Vima a świadomością specyficzną dla języka Java Eclipse.

    <C-n> i <C-p> nie są-takie-wielkie, ale zadziwiające pomocne.

  • Jak podświetlanie składni?

    Więcej niż wystarczająco dobre dla zakreślacza opartego na regex.

Możesz rozważyć narzędzia do innych celów vim+java, takie jak szablony kodu (snippetu - domyślne snippety są do bani, ale możliwość dostosowania świeci), wyszukiwanie zastosowań i przechodzenie do deklaracji (eclim, grep, ctags), generowanie getterów i setterów (java_getset, lub eclim), automatyczny import (eclim). Możesz również potrzebować java shell do szybkich eksperymentów(The BeanShell, vel bsh).

 21
Author: ngn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-02 19:56:19

Właśnie wgrałem tę wtyczkę Vim do rozwoju projektów Java Maven.

I nie zapomnij ustawić podświetlenia, jeśli jeszcze tego nie zrobiłeś:

Https://github.com/sentientmachine/erics_vim_syntax_and_color_highlighting

 9
Author: ikky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-27 08:30:13

Uważam, że następujące podsumowanie jest bardzo przydatne: http://www.techrepublic.com/article/configure-vi-for-java-application-development/5054618 . Opis: make był dla ant nie maven, ale poza tym ładne podsumowanie.

 8
Author: Kevin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-25 19:21:47

Wiem, że jest to kilka lat później, ale oto kilka ciekawych wtyczek. Nie próbowałem żadnego z nich jeszcze tak YMMV.

Https://github.com/mikelue/vim-maven-plugin

Https://github.com/vim-scripts/maven-ide

EDIT: o BTW, próbowałem eclim off i on, ale powodem, dla którego lubię Vima, jest jego lekkość. Wykonywanie eclipse nawet w trybie bezgłowym jest dla mnie zbyt dużym obciążeniem psychicznym.

EDIT2: ostatnio używam playframework i to prawdopodobnie będzie działać również z Maven builds:
  • Do kompilacji, możesz skonfigurować make Vima do uruchamiania Mavena lub w moim case, uruchom skrypt kompilacji, połącz to z plikiem.

    autocmd Filetype java setl makeprg=play_compile
    autocmd Filetype java setl efm=%A\ %#[error]\ %f:%l:\ %m,%-Z\ %#[error]\ %p^,%-C%.%#
    

"play_compile" to tylko skrypt kompilacji. Używa SBT, więc Maven powinien działać dobrze tutaj. Nawet bezpośredni javac zadziała. W ten sposób możesz użyć bufora quickfix Vima (: cnext,: clist: cprev, itd.).

  • Do przeskakiwania po klasach używam ctrl-P . Jest piękny. Użyj go. Szybszy niż eclipse w skakaniu po plikach.

  • Do przeskakiwania po metodach używam tagsearch z żywiołowymi c-tagami. Przeskocz do deklaracji metody używając ctrl -]. Wróć używając Ctrl-o nie działa tak dobrze jak eclipse, ale działa wystarczająco dobrze.

  • Używam supertab do uzupełniania kodu. Javacomplete jest dość powolny, więc trzymam się omni-complete. Ponownie, nie tak dokładne jak eclipse, ale jego szybki i działa wystarczająco dobrze dla ja.

 8
Author: critium,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-31 15:36:09

Użyj vim. ^ - ^(gVim, żeby być precyzyjnym)

Będziesz miał wszystko (z kilkoma wtyczkami).

Btw, snippetsEmu to ładne narzędzie do kodowania z przydatnymi urywkami (jak w TextMate). Możesz użyć (lub zmodyfikować) gotowego pakietu lub stworzyć własny.

 5
Author: Berzemus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-31 11:19:18