2009-10-21 14 views
11

He leído montones de blogs sobre supuestamente la gran omnicompleción de Vim, y sin embargo no importa lo que haga, no puedo hacer que funcione satisfactoriamente. Me llevó años descubrir que la versión de ctags que estaba preinstalada en mi sistema era la de emacs, y no tenía la opción --recurse, pero ahora que había ejecutado ctags - exuberante en mi copia del OpenJDK Para intentar obtener algún tipo de finalización de código, Vim se cuelga cada vez que intento invocarlo con [Cn] o [Cp].Vim omnicompletion para Java

Todo lo que realmente quiero es algo que funcione como la finalización del código en Eclipse; Me gusta Vim como editor, pero Eclipse solo tiene esas características adicionales listas para usar, con las que Vim parece fallar. Eclipse con un plugin vi-mode no fue particularmente útil para mí, y es demasiado uso de memoria y CPU. eclim tampoco me gusta.

¿Alguien puede sugerir una forma más simple de obtener algún tipo de código completo trabajando en Vim que realmente funcione?

Respuesta

8

Aquí es una característica "JDE" de vim: http://www.vim.org/scripts/script.php?script_id=1213 Una de las características que se enumeran es "Finalización de código (de trabajo para Java y JSP, taglib, HTML, XML, XSL, XSD) (VIM 7.0 requerido)"

y aquí es un script de terminación automática de Java: http://vim.sourceforge.net/scripts/script.php?script_id=1785

Éste no es Java, pero me pareció que estaba bastante clara y comprensible; quizás podría valer la pena leerlo. Aquí hay una receta para configurar el autocompletado de Drupal. Un script AWK personalizado crea un diccionario de autocompletado para vim. http://www.thingy-ma-jig.co.uk/blog/18-08-2009/drupal-autocomplete-vim

Buena suerte.

+1

Gracias por sus sugerencias. ¿Has probado JDE y javacompletate? ¿Cuál es tu preferencia? He intentado con Java completo pero no siempre funciona para mí (no he investigado por qué). ¡Me voy a echar un vistazo a JDE! – Hannes

1

Tenía el mismo deseo, lo cumplí usando eclim. Funciona muy bien.

5

Yo tenía un ir con eclim:

http://eclim.sourceforge.net/

Hace un tiempo, que básicamente funciona Eclipse en el fondo y luego proporciona un plugin vim que te permite obtener a toda la funcionalidad de Eclipse en vim. Entonces puede hacer refactorización, completar etc. Parece funcionar bastante bien si no le importa ejecutar un gran proceso de eclipse en segundo plano en su sistema.

Tengo la finalización trabajando bastante bien en C++ (mejor que Stud de todos modos) pero nunca tuve mucha suerte con Java. En estos días tiendo a usar eclipse la mayor parte del tiempo, pero tengo gvim --remote configurado como un comando externo en eclipse para poder simplemente guardar el buffer actual en vim en cualquier momento que quiera.

+1

Por cierto, ese último párrafo se refería a vim's construido en omni finalización, no eclim. – Benj

1

He buscado esto así como estoy considerando pasar de eclipse a vim. La mejor solución que he encontrado hasta ahora es hacer que vim eclipse con el vrapper (http://vrapper.sourceforge.net/). Trae muchas de las características de vim al editor de eclipse y todavía puedes usar la función de autocompletado y todas las demás características de Eclipse.

Todavía estoy interesado en moverme por completo, pero parece difícil vencer el eclipse para un entorno de desarrollo Java. (¡Odio la sobrecarga por eclipse!)

+0

Sugerencia: vrapper tiene la terminación [C-p].Solo necesita deshabilitar el comando de impresión (doble CTRL + MAYÚS + L, búsqueda de CTRL + P). ¿Quién necesita imprimir el código de todos modos? – Dacav

+0

En general, noté que puede obtener un comportamiento muy similar al deshacerse de las combinaciones de teclas predeterminadas, que tienen prioridad sobre las definidas por vrapper. – Dacav