2009-10-21 16 views
11

Ich habe eine Menge Blogs über Vims angeblich große Omnicompletion gelesen, und egal, was ich mache, ich kann es nicht zufriedenstellend funktionieren lassen. Es hat lange gedauert, bis ich festgestellt habe, dass die Version von Ctags, die auf meinem System vorinstalliert ist, die Emacs war und nicht die Option --recurse hatte, aber jetzt habe ich ctags-exuberant auf meiner Kopie von OpenJDK ausgeführt Quellen zu versuchen, irgendeine Art von Code-Abschluss zu gehen, hängt Vim, wenn ich versuche, es mit [Cn] oder [Cp] aufzurufen.Vim Omnicompletion für Java

Alles, was ich wirklich will, ist etwas, das wie die Codevervollständigung in Eclipse funktioniert; Ich mag Vim als Editor, aber Eclipse hat einfach die zusätzlichen Funktionen, mit denen Vim zu scheitern scheint. Eclipse mit einem vi-mode-Plugin war für mich nicht besonders nützlich, und es ist zu viel Speicher und CPU-Schwein, um irgendeinen Nutzen zu haben; Eclim mag mich auch nicht.

Kann jemand einen einfacheren Weg vorschlagen, eine Art Code-Vervollständigung zu bekommen, die in Vim funktioniert, die tatsächlich funktioniert?

Antwort

8

ist hier ein "JDE" -Funktion für vim: http://www.vim.org/scripts/script.php?script_id=1213 Eine der aufgeführten Merkmale ist "Code-Vervollständigung (Arbeits für Java und JSP, taglib, html, xml, xsl, XSD) (VIM 7.0 erforderlich)"

und hier ist eine Java-Skript Auto-Vervollständigung: http://vim.sourceforge.net/scripts/script.php?script_id=1785

Dieser ist nicht Java, aber ich fand es ganz klar und verständlich zu sein; vielleicht könnte es lesenswert sein. Hier ist ein Rezept zum Einrichten der Autovervollständigung für Drupal. Ein benutzerdefiniertes AWK-Skript erstellt ein Autovervollständigungswörterbuch für vim. http://www.thingy-ma-jig.co.uk/blog/18-08-2009/drupal-autocomplete-vim

Viel Glück.

+1

Vielen Dank für Ihre Vorschläge. Hast du JDE ausprobiert und dich selbst abgeschlossen? Was ist deine Präferenz? Ich habe versucht javacomplete, aber es funktioniert nicht immer für mich (habe nicht in warum gegraben). Ich schaue mir JDE an! – Hannes

1

Hatte den gleichen Wunsch, habe es erfüllt mit eclim. Funktioniert wirklich sehr gut.

5

Ich hatte ein mit eclim gehen:

http://eclim.sourceforge.net/

Vor einiger Zeit, es Eklipse im Hintergrund im Grunde läuft und stellt dann ein Vim-Plugin, das Sie auf alle Funktionen von Eclipse innerhalb vim bekommen können. So können Sie Refactoring, Completion usw. durchführen. Es scheint ziemlich gut zu funktionieren, wenn es Ihnen nichts ausmacht, einen riesigen Eclipse-Prozess im Hintergrund auf Ihrem System auszuführen.

Ich habe Abschluss ziemlich gut in C++ arbeiten (Besser als Vis Stud sowieso), aber hatte nie viel Glück mit Java. Heutzutage neige ich dazu, die meiste Zeit Eclipse zu benutzen, aber ich habe gvim --remote als externen Befehl in Eclipse eingerichtet, so dass ich den aktuellen Puffer einfach in vim packen kann, wann immer ich will.

+1

Übrigens bezog sich dieser letzte Punkt auf die eingebaute Omni-Vollendung von Vim, nicht auf Eclim. – Benj

1

Ich habe dafür ebenso gesucht, wie ich überlege, von Eclipse zu Vim zu wechseln. Die beste Lösung, die ich bisher gefunden habe, ist es, vim mit dem vrapper zu verfinstern (http://vrapper.sourceforge.net/). Es bringt viele Funktionen von vim in den Eclipse-Editor und Sie können weiterhin die Autokomplettierung und alle anderen Funktionen von Eclipse verwenden.

Ich bin immer noch daran interessiert, komplett zu bewegen, aber es scheint schwierig zu sein, Eclipse für eine Java-Entwicklungsumgebung zu schlagen. (hassen Sie einfach den Overhead für die Finsternis!)

+0

Hinweis: vrapper es hat die [C-p] Vervollständigung.Sie müssen nur den Druckbefehl deaktivieren (STRG + UMSCHALT + L drücken, STRG + P suchen). Wer muss überhaupt Code drucken? – Dacav

+0

Im Allgemeinen habe ich festgestellt, dass Sie ein sehr vimartiges Verhalten erhalten, indem Sie die Standard-Tastenbelegungen loswerden, die Vorrang vor den von vrapper definierten haben. – Dacav