Tipps zur Verwendung von Vim als Java-IDE? [closed]

Lesezeit: 8 Minuten

Benutzer-Avatar
Allain Lalonde

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 für mich, um es einfacher zu machen, Java-Apps zu entwickeln?

Einige Fragen, die ich habe:

  • Wie rufe ich eine Maven-Aufgabe auf, ohne vi zu verlassen?
  • Kann ich Codevervollständigung erhalten?
  • Wie ist die Syntaxhervorhebung?

Gibt es noch etwas (außer „Tu es nicht!“), das ich wissen sollte?

  • Ich verwende NetBeans ausgiebig bei der Arbeit, aber für meinen persönlichen Server zu Hause … funktioniert die Verwendung von NetBeans nicht gut, da ich meine Entwicklung auf einem anderen Computer durchführen und dann bereitstellen müsste. Die Hin- und Rückfahrt ist einfach zu lang.

    – Allain Lalonde

    3. November 2008 um 14:14 Uhr

  • @AdamC Eingehend von Google hier … Als selbsternannter Befehlszeilen-Geek, der von Python kommt, denke ich, dass die Eintrittsbarriere bei der Einrichtung einer Java-Entwicklungsumgebung darin besteht sehr angehoben durch die Notwendigkeit solcher Programme. Ich muss schon die JVM installieren … warum sollte man noch MEHR installieren müssen, nur um ein Hallo Welt zum Laufen zu bringen? Es ist nur die allgemeine Veranlagung, die Leute, die aus Skriptsprachen kommen, haben werden, wenn sie zum ersten Mal Java lernen.

    – DiakonDesperado

    11. April 2013 um 19:19 Uhr

  • Wenn ich in VIM bearbeite. Um zur Konsole zurückzukehren, können Sie einfach Strg + Z drücken, was vim in den Hintergrund versetzt und Sie zurück zur Konsole bringt. Dann können Sie den Befehl fg verwenden, um vim wieder in den Vordergrund zu bringen

    – Matthew Kirkley

    21. November 2013 um 13:14 Uhr

  • Sie müssen nicht ctrl=

    – fuzzyTew

    14. November 2015 um 17:36 Uhr

  • Sie müssen nicht ctrl+z/fg drücken. Geben Sie einfach :!command ein und ‘command’ wird ausgeführt. Wenn Sie eine schnelle Shell wünschen, geben Sie :!bash ein. Wenn Sie dann beenden, kehren Sie zu vim zurück, anstatt einen baumelnden Hintergrundjob zu verlassen. Sie können eine Shell in einem vim-Fenster mit Plugins erhalten.

    – fuzzyTew

    14. November 2015 um 17:37 Uhr

Benutzer-Avatar
Werkzeugkasten

Einige Hinweise:

  • Stellen Sie sicher, dass Sie vim (vi verbessert) verwenden. Linux und einige Versionen von UNIX symbolisieren vi mit vim.
  • Sie können Code-Vervollständigung mit erhalten Eklim
  • Oder Sie können die vi-Funktionalität innerhalb von Eclipse mit erhalten viPlugin
  • Syntaxhervorhebung ist großartig mit vim
  • Vim bietet gute Unterstützung für das Schreiben kleiner Makros wie zum Beispiel Ausführen von Ant/Maven baut

Habe Spaß 🙂

  • Befehl, um Hilfe zum Hervorheben der Java-Syntax zu erhalten. :help java.vim

    – Michael Ekoka

    8. Februar 2010 um 7:47 Uhr

  • Eine andere Möglichkeit, die Vim-Funktionalität in Eclipse zu erhalten, ist Vrapper. Es hat die meisten Vim-Tastenbelegungen und ist im Gegensatz zu viPlugin kostenlos.

    – Hinweis

    31. März 2013 um 14:48 Uhr


  • Wie wäre es mit einem Debugger, der Step Over, Step Through usw. unterstützt?

    – Donato

    8. Mai 2015 um 17:37 Uhr

  • Linux… symlink vi zu vim Gegenbeispiel: Arch Linux

    – johnchen902

    6. September 2017 um 12:41 Uhr

Ich bin seit Jahren ein Vim-Benutzer. Ich fange an, Eclipse gelegentlich zu starten (mit dem vi-Plugin, das, wie ich sagen muss, eine Vielzahl von Problemen hat). Der Hauptgrund ist, dass Java-Builds eine ganze Weile dauern … und sie werden immer langsamer, wenn hochkomponentige Build-Frameworks wie Maven hinzugefügt werden. Die Validierung Ihrer Änderungen dauert also in der Regel eine ganze Weile, was für mich oft dazu führt, dass sich eine Reihe von Kompilierproblemen ansammeln, die ich später lösen muss, und das Filtern der Commit-Nachrichten eine Weile dauert.

Wenn die Warteschlange mit Kompilierungsproblemen zu groß wird, starte ich Eclipse. Es lässt mich die Änderungen zum Kinderspiel machen. Es ist langsam, brutal zu bedienen und bei weitem nicht so ein netter Editor wie Vim (ich benutze Vim seit fast einem Jahrzehnt, also ist es für mich eine Selbstverständlichkeit). Ich finde für die Präzisionsbearbeitung – einen bestimmten Fehler beheben müssen, ein bestimmtes Stück Logik umgestalten müssen oder etwas anderes … Ich kann beim Bearbeiten in Eclipse einfach nicht so effizient sein wie in Vim.

Auch ein Tipp:

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

Das macht ^wf auf einem Klassennamen ein sehr nettes Feature zum Navigieren in einem großen Projekt.

Wie dem auch sei, das Schlimme ist, wenn ich viel neuen Code hinzufügen muss, scheint Vim mich zu verlangsamen, einfach aufgrund der Zeit, die damit verbracht wird, Kompilierungsproblemen und ähnlichen Dingen nachzujagen. Wenn ich jedoch bestimmte Quellen finden und bearbeiten muss, fühlt sich Eclipse wie ein Vorschlaghammer an. Ich warte immer noch auf die magische IDE für Vim. Es gab drei große Versuche, die ich kenne. Es gibt ein reines viml-Plugin vom Typ IDE, das viele Funktionen hinzufügt, aber unmöglich zu verwenden scheint. Es gibt Eclim, mit dem ich eine Menge Probleme hatte. Und es gibt ein Plugin für Eclipse, das Vim tatsächlich einbettet. Das letzte scheint das vielversprechendste für wirklich ernsthafte Java EE-Arbeit zu sein, aber es scheint nicht sehr gut zu funktionieren oder wirklich alle Funktionen von Eclipse mit dem eingebetteten Vim zu integrieren.

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

  • Stimmen Sie für “^wf” Ich wusste nicht, dass es so etwas in vim gibt 🙂

    – Krzysztof Krason

    16. September 2011 um 6:50 Uhr

  • Können Sie mehr über ^wf erklären? Was es macht?

    – Benutzer2427

    24. November 2011 um 20:11 Uhr

  • Es öffnet die Java-Datei/Klasse (Dateinamenerweiterung .java wird nicht benötigt) unter dem Cursor in einem neuen geteilten Fenster, wenn es die Datei finden kann. Deshalb :set path=** ist hilfreich.

    – exisch

    14. September 2012 um 20:04 Uhr


  • Also sind die ** buchstäblich zwei Sternchen?

    – Tacos

    13. Oktober 2014 um 19:40 Uhr

  • @lijat :help ^wf — genau wie andere Vim-Hilfen

    – JESii

    7. März 2017 um 15:46 Uhr

  • Wie rufe ich eine Maven-Aufgabe auf, ohne vi zu verlassen?

    Maven unterscheidet sich nicht von jedem anderen Shell-Befehl:

    :!mvn

    Du kannst :set makeprg=mvn wenn Sie bereits eine bevorzugte Tastenbelegung haben :make.

  • Kann ich Codevervollständigung erhalten?

    Ja, Eklim ist großartig, eine Brücke zwischen der Bearbeitungseffizienz von vim und dem Java-spezifischen Bewusstsein von Eclipse.

    <C-n> und <C-p> sind nicht so toll, aber unglaublich hilfreich.

  • Wie ist die Syntaxhervorhebung?

    Mehr als gut genug für einen Regex-basierten Highlighter.

Möglicherweise möchten Sie Tools für andere vim+java-Zwecke in Betracht ziehen, wie Codevorlagen (AusschnittEmu—Standard-Snippets sind scheiße, aber die Anpassbarkeit glänzt), nach Verwendungen suchen und zu Deklarationen gehen (eclim, grep, ctags), Getter und Setter generieren (java_getset, oder eclim), automatische Importe (eclim). Möglicherweise benötigen Sie auch eine Java-Shell für schnelle Experimente (die Bohnenschaleauch bekannt bsh).

  • danke für den BeanShell-Tipp, ich kannte dieses Tool nicht

    – GoingTharn

    15. Januar 2012 um 13:32 Uhr

Benutzer-Avatar
ikki

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

Und vergessen Sie nicht, die Hervorhebung festzulegen, falls Sie dies noch nicht getan haben:

Geben Sie hier die Bildbeschreibung ein
https://github.com/sentientmachine/erics_vim_syntax_and_color_highlighting

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 ant not maven, aber ansonsten eine schöne Zusammenfassung.

Ich weiß, das ist ein paar Jahre später, aber hier sind einige interessante Plugins. Ich habe beide noch nicht ausprobiert, also YMMV.

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

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

EDIT: Oh übrigens, ich habe Eclim ab und zu ausprobiert, aber der Grund, warum ich vim mag, ist seine Leichtigkeit. Eclipse selbst im Headless-Modus auszuführen, ist einfach zu viel mentales Heben für mich.

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

  • Zum Kompilieren können Sie Make von VIM so konfigurieren, dass es Maven ausführt, oder in meinem Fall ein Build-Skript ausführen und das in eine Datei umleiten.

    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 Kompilierskript. Es verwendet SBT, also sollte Maven hier gut funktionieren. Sogar direktes Javac funktioniert. Auf diese Weise können Sie den Quickfix-Puffer von VIM verwenden (:cnext, :clist: cprev usw.).

  • Zum Herumspringen in den Klassen benutze ich Strg-p. Es ist wunderschön. Benutze es. Schneller als Eclipse beim Umherspringen von Dateien.

  • Um herumzuspringen, verwende ich Tagsearch mit üppigen C-Tags. Springen Sie mit ctrl-]in Methodendeklarationen. Gehen Sie zurück mit Strg-o. Funktioniert nicht so gut wie Eclipse, aber es funktioniert gut genug.

  • ich benutze supertab zur Codevervollständigung. Javacomplete ist ziemlich langsam, also bleibe ich bei Omni-Complete. Auch hier nicht so genau wie Eclipse, aber es ist schnell und funktioniert gut genug für mich.

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

Sie haben alles (mit einigen Plugins).

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

1353210cookie-checkTipps zur Verwendung von Vim als Java-IDE? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy