Ich bin süchtig nach Vim, es ist jetzt meine faktische Art, Textdateien zu bearbeiten.
Hat jemand Tricks für mich, um die Entwicklung von Java-Apps zu vereinfachen, da es sich hauptsächlich um einen Texteditor und nicht um eine IDE handelt?
Einige Fragen, die ich habe:
- Wie rufe ich eine Maven-Aufgabe auf, ohne vi zu verlassen?
- Kann ich den Code vervollständigen?
- Wie wird die Syntax hervorgehoben?
Sonst noch etwas (außer "Tu es nicht!"), Über das ich Bescheid wissen sollte?
Antworten:
Einige Hinweise:
Habe Spaß :-)
quelle
Ich bin seit Jahren ein Vim-Benutzer. Ich fange an, gelegentlich Eclipse 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 hochkomponentierte Build-Frameworks wie maven hinzugefügt werden. Die Überprüfung Ihrer Änderungen dauert daher in der Regel eine Weile, was für mich häufig dazu führt, dass eine Reihe von Kompilierungsproblemen gestapelt werden, die ich später beheben muss, und das Filtern durch die Festschreibungsnachrichten dauert eine Weile.
Wenn ich eine zu große Warteschlange mit Kompilierungsproblemen habe, starte ich Eclipse. Damit kann ich die Änderungen in den Griff bekommen. Es ist langsam, brutal zu bedienen und bei weitem nicht so gut wie Vim (ich benutze Vim seit fast einem Jahrzehnt, daher ist es für mich eine Selbstverständlichkeit). Ich finde 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 bearbeiten wie in Vim.
Auch ein Tipp:
Dies macht
^wf
einen Klassennamen zu einer sehr schönen Funktion für die Navigation in einem großen Projekt.Wenn ich also viel neuen Code hinzufügen muss, scheint Vim mich zu verlangsamen, einfach weil ich Zeit damit verbracht habe, Kompilierungsprobleme und ähnliches zu verfolgen. 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. Ich kenne drei große Versuche. Es gibt ein reines viml IDE-Plugin, das viele Funktionen hinzufügt, aber unmöglich zu verwenden scheint. Es gibt Eclim, mit dem ich große 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-Arbeiten zu sein, aber es scheint nicht sehr gut zu funktionieren oder alle Funktionen von Eclipse wirklich 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 Ihre IDE von unschätzbarem Wert zu sein, wenn Sie an einem großen Java-Projekt arbeiten.
quelle
.java
ist nicht erforderlich) unter dem Cursor in einem neuen geteilten Fenster, wenn die Datei gefunden werden kann. Deshalb:set path=**
ist hilfreich.:help ^wf
- genau wie andere vim HilfeWie rufe ich eine Maven-Aufgabe auf, ohne vi zu verlassen?
Maven unterscheidet sich nicht von anderen Shell-Befehlen:
:!mvn
Sie können,
:set makeprg=mvn
wenn Sie bereits eine bevorzugte Schlüsselzuordnung für haben:make
.Kann ich den Code vervollständigen?
Ja, Eclim ist großartig, eine Brücke zwischen der Bearbeitungseffizienz von vim und dem sprachspezifischen Java-Bewusstsein von Eclipse.
<C-n>
und<C-p>
sind nicht so toll, aber erstaunlich hilfreich.Wie wird die Syntax hervorgehoben?
Mehr als gut genug für einen Regex-basierten Textmarker.
Möglicherweise möchten Sie Tools für andere vim + java-Zwecke in Betracht ziehen, z. B. Codevorlagen ( snippetEmu - Standard-Snippets sind zum Kotzen, aber die Anpassbarkeit glänzt), nach Verwendungen suchen und zu Deklarationen (eclim, grep, ctags) gehen, 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 BeanShell , auch bekannt als
bsh
).quelle
Ich habe gerade dieses Vim-Plugin für die Entwicklung von Java Maven-Projekten hochgeladen .
Und vergessen Sie nicht, die Hervorhebung festzulegen, wenn Sie dies noch nicht getan haben:
https://github.com/sentientmachine/erics_vim_syntax_and_color_highlighting
quelle
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 Ameise nicht maven, aber ansonsten eine schöne Zusammenfassung.
quelle
Ich weiß, dass dies einige Jahre später ist, aber hier sind einige interessante Plugins. Ich habe beides 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 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 es maven ausführt, oder in meinem Fall ein Build-Skript ausführen und das in eine Datei umwandeln.
"play_compile" ist nur ein Kompilierungsskript. Es verwendet SBT, also sollte Maven hier gut funktionieren. Sogar direkter Javac wird funktionieren. Auf diese Weise können Sie den Quickfix-Puffer von VIM (: cnext ,: clist: cprev usw.) verwenden.
Zum Herumspringen 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. Springen Sie mit Strg-] in Methodendeklarationen. Gehen Sie mit Strg-o zurück. Funktioniert nicht so gut wie Eclipse, aber es funktioniert gut genug.
Ich benutze Supertab für die 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.
quelle
Verwenden Sie vim. ^ - ^ (gVim, um genau zu sein)
Sie werden alles haben (mit einigen Plugins).
Übrigens ist snippetsEmu ein nettes Tool zum Codieren mit nützlichen Snippets (wie in TextMate). Sie können ein vorgefertigtes Paket verwenden (oder ändern) oder ein eigenes erstellen.
quelle