it-swarm.com.de

Tipps zur Verwendung von Vim als Java IDE?

Ich bin süchtig nach Vim, es ist jetzt de facto meine Art, Textdateien zu bearbeiten.

Da es sich hauptsächlich um einen Texteditor und nicht um eine IDE handelt, hat jemand Tricks, die mir das Entwickeln von Java apps?

Einige Fragen, die ich habe:

  • Wie rufe ich eine Maven-Task auf, ohne vi zu verlassen?
  • Kann ich Code vervollständigen lassen?
  • Wie wird die Syntax hervorgehoben?

Was sollte ich sonst noch wissen (außer "Mach es nicht!")?

192
Allain Lalonde

Einige Hinweise:

  • Stellen Sie sicher, dass Sie vim (vi verbessert) verwenden. Linux und einige Versionen von UNIX verknüpfen vi mit vim.
  • Sie können die Code-Vervollständigung mit eclim erhalten
  • Oder Sie können vi-Funktionalität in Eclipse mit viPlugin erhalten
  • Syntax-Hervorhebung ist mit vim großartig
  • Vim hat eine gute Unterstützung für das Schreiben kleiner Makros wie das Ausführen von ant/ maven Builds

Habe Spaß :-)

74
toolkit

Ich bin seit Jahren ein Vim-Benutzer. Ich starte gelegentlich Eclipse (mit dem vi-Plugin, das, wie ich sagen muss, verschiedene Probleme hat). Der Hauptgrund ist, dass die Erstellung von Java eine Weile dauert ... und sie werden immer langsamer, wenn hochgradig komponente Build-Frameworks wie Maven hinzugefügt werden. Das Überprüfen Ihrer Änderungen dauert daher in der Regel eine Weile, was für mich häufig dazu führt, dass sich eine Reihe von Kompilierungsproblemen häufen, die ich später beheben muss, und das Durchsuchen der Festschreibungsnachrichten eine Weile dauert.

Wenn ich zu viele Kompilierungsprobleme habe, starte ich Eclipse. Damit kann ich die Veränderungen zum Kinderspiel machen. Es ist langsam, brutal in der Anwendung und bei weitem nicht so gut wie Vim (ich benutze Vim seit fast einem Jahrzehnt, daher ist es für mich selbstverständlich). Ich finde es für die präzise Bearbeitung - ich muss einen bestimmten Fehler beheben, ein bestimmtes Stück Logik umgestalten oder etwas anderes ... Ich kann in Eclipse einfach nicht so effizient arbeiten wie in Vim.

Auch ein Tipp:

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

Dies macht ^wf Für einen Klassennamen zu einer sehr nützlichen Funktion zum Navigieren in einem großen Projekt.

Trotzdem scheint Vim, wenn ich eine Menge neuen Code hinzufügen muss, mich zu verlangsamen, nur weil ich einige Zeit damit verbracht habe, Kompilierungsprobleme und ähnliches aufzuspüren. Wenn ich jedoch bestimmte Quellen suchen und bearbeiten muss, fühlt sich Eclipse wie ein Vorschlaghammer an. Ich warte immer noch auf das magische IDE für Vim. Ich kenne drei Hauptversuche. Es gibt ein reines viml IDE-Plugin, das viele Funktionen hinzufügt, aber unmöglich zu verwenden scheint. Es gibt Eclim, mit dem ich viel zu tun hatte. Und es gibt ein Plugin für Eclipse, das tatsächlich Vim einbettet. Die letzte scheint die vielversprechendste für echte Java EE-Arbeit zu sein, aber sie scheint nicht sehr gut zu funktionieren oder alle Funktionen von Eclipse in das eingebettete Vim zu integrieren.

Dinge wie das Hinzufügen eines fehlenden Imports mit einem Tastendruck, Hilight-Code mit Tippproblemen usw. scheinen für Ihr IDE bei der Arbeit an einem großen Java Projekt von unschätzbarem Wert zu sein.

30
Scott McCoy
  • Wie rufe ich eine Maven-Task auf, ohne vi zu verlassen?

    Maven unterscheidet sich nicht von anderen Shell-Befehlen:

    :!mvn

    Sie können :set makeprg=mvn Auswählen, wenn Sie bereits eine bevorzugte Tastenzuordnung für :make Haben.

  • Kann ich Code vervollständigen lassen?

    Ja, eclim ist eine großartige Brücke zwischen der Bearbeitungseffizienz von vim und dem sprachspezifischen Bewusstsein von Eclipse Java.

    <C-n> Und <C-p> Sind nicht so toll, aber erstaunlich hilfreich.

  • Wie wird die Syntax hervorgehoben?

    Mehr als gut genug für einen Highligher auf Regex-Basis.

Möglicherweise möchten Sie Tools für andere vim + Java-Zwecke in Betracht ziehen, z. B. Codevorlagen ( snippetEm - Standard-Snippets saugen, aber Anpassbarkeit scheint), nach Verwendungen suchen und zu Deklarationen gehen (eclim, grep, ctags). Generieren von Gettern und Settern ( Java_getset oder eclim), automatisches Importieren (eclim). Möglicherweise benötigen Sie auch eine Java - Shell für schnelle Experimente (die BeanShell , a.k.a. bsh).

22
ngn

Ich habe gerade dieses Vim-Plugin für die Entwicklung von Java Maven-Projekten hochgeladen.

Und vergessen Sie nicht, die Hervorhebung zu setzen, wenn Sie dies noch nicht getan haben:

enter image description here https://github.com/sentientmachine/erics_vim_syntax_and_color_highlighting

9
ikky

Ich fand die folgende Zusammenfassung sehr nützlich: http://www.techrepublic.com/article/configure-vi-for-Java-application-development/5054618 . Die Beschreibung von: make war für Ameisen kein Maven, aber ansonsten eine nette Zusammenfassung.

8
Kevin

Ich weiß, das ist einige Jahre später, aber hier sind einige interessante Plugins. Ich habe noch keines davon ausprobiert, also YMMV.

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

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

EDIT: Oh, übrigens, ich habe eclim immer wieder ausprobiert, aber der Grund, warum ich vim mag, ist seine Leichtigkeit. Das Ausführen von Eclipse auch im kopflosen Modus ist für mich einfach zu viel mentales Heben.

EDIT2: Ich habe in letzter Zeit Playframework verwendet und dies wird wahrscheinlich auch mit Maven Builds funktionieren:

  • Zum Kompilieren können Sie VIMs make so konfigurieren, dass maven ausgeführt wird, oder in meinem Fall ein Erstellungsskript ausführen und dieses in eine Datei abspeichern.

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

"play_compile" ist nur ein Kompilierungsskript. Es benutzt SBT, also sollte Maven hier gut funktionieren. Auch Direct Java wird funktionieren. Auf diese Weise können Sie den Quickfix-Puffer von VIM verwenden (: cnext,: clist: cprev usw.).

  • Um durch die Klassen zu springen, benutze ich Strg-P . Es ist wunderschön. Benutze es. Schneller als Eclipse beim Herumspringen in Dateien.

  • Zum Herumspringen verwende ich die Tagsuche mit üppigen C-Tags. Mit Strg-] in Methodendeklarationen springen. Gehen Sie mit Strg-o zurück. Funktioniert nicht so gut wie Eclipse, aber es funktioniert gut genug.

  • Ich benutze supertab zur Code-Vervollständigung. Javacomplete ist ziemlich langsam, also bleibe ich bei omni-complete. Wieder nicht so genau wie Eclipse, aber es ist schnell und funktioniert gut genug für mich.

8
critium

Benutze vim. ^ - ^ (gVim, um genau zu sein)

Sie werden alles haben (mit einigen Plugins).

Btw, snippetsEm ist ein nettes Tool zum Codieren mit nützlichen Snippets (wie in TextMate). Sie können ein vorgefertigtes Paket verwenden (oder modifizieren) oder ein eigenes erstellen.

5
Berzemus