¿Consejos para usar Vim como un IDE de Java? [cerrado]

195

Soy adicto a Vim, ahora es mi forma de facto de editar archivos de texto.

Siendo que es principalmente un editor de texto y no un IDE, ¿alguien tiene trucos para que lo haga más fácil al desarrollar aplicaciones Java?

Algunas preguntas que tengo:

  • ¿Cómo invoco una tarea maven sin salir de vi?
  • ¿Puedo obtener la finalización del código?
  • ¿Cómo es el resaltado de sintaxis?

¿Algo más (aparte de "¡No lo hagas!") Que debería saber?

Allain Lalonde
fuente
1
Uso netbeans ampliamente en el trabajo, pero para mi servidor personal en casa ... usar NetBeans no funciona bien ya que tendría que hacer mi desarrollo en otra computadora y luego implementarlo. El viaje de ida y vuelta es demasiado largo.
Allain Lalonde
1
@AdamC Inbound de Google aquí ... Como un geek de la línea de comandos autoadmitido que viene de Python, creo que la barrera de entrada en la configuración con un entorno de desarrollo de Java se eleva enormemente al necesitar tales programas. Ya tengo que instalar la JVM ... ¿por qué debería uno tener que hacer aún más instalación solo para poner en marcha un mundo hola? Es solo la disposición general que las personas que provienen de los lenguajes de scripting tendrán cuando aprendan Java por primera vez.
DeaconDesperado
2
Cuando estoy editando en VIM. Para volver a la consola, puede hacer ctrl + z, que pondrá vim en segundo plano y lo llevará de vuelta a la consola. Entonces puede usar el comando fg para traer vim de vuelta a su primer plano
Matthew Kirkley
No tiene que ctrl =
fuzzyTew
3
No tiene que presionar ctrl + z / fg ... simplemente escriba:! Command y se ejecutará 'command'. Si desea un shell rápido, escriba:! Bash. luego, si sale, vuelve a vim en lugar de dejar un trabajo de fondo pendiente. Puede obtener un shell en una ventana vim con complementos.
fuzzyTew

Respuestas:

75

Algunos consejos:

  • Asegúrese de usar vim (vi mejorado). Linux y algunas versiones del enlace simbólico UNIX vi to vim.
  • Puede completar el código con eclim
  • O puede obtener la funcionalidad vi dentro de Eclipse con viPlugin
  • El resaltado de sintaxis es excelente con vim
  • Vim tiene un buen soporte para escribir pequeñas macros como ejecutar compilaciones ant / maven

Que te diviertas :-)

kit de herramientas
fuente
77
comando para obtener ayuda sobre el resaltado de sintaxis de Java. : ayuda java.vim
Michael Ekoka
2
Otra forma de obtener la funcionalidad de Vim dentro de Eclipse es Vrapper . Tiene la mayoría de las combinaciones de teclas de Vim y, a diferencia de viPlugin, es gratis.
n1te
1
¿Qué tal un depurador que admite paso a paso, paso a paso, etc.?
Donato
1
Linux ... enlace simbólico vi a vim Contraejemplo: Arch Linux
johnchen902
30

He sido un usuario de Vim durante años. Estoy empezando a encontrarme iniciando Eclipse ocasionalmente (usando el complemento vi, que, debo decir, tiene una variedad de problemas). La razón principal es que las compilaciones de Java toman bastante tiempo ... y se están volviendo cada vez más lentas con la adición de marcos de compilación altamente componentes como maven. Por lo tanto, la validación de sus cambios tiende a llevar bastante tiempo, lo que para mí parece llevar a menudo a acumular un montón de problemas de compilación que tengo que resolver más adelante, y filtrar los mensajes de confirmación lleva un tiempo.

Cuando me vuelvo demasiado grande de problemas de compilación, enciendo Eclipse. Me permite hacer el trabajo de los cambios. Es lento, brutal de usar, y no es un editor tan agradable como Vim (he estado usando Vim durante casi una década, por lo que es una segunda naturaleza para mí). Lo encuentro para la edición de precisión: la necesidad de corregir un error específico, la necesidad de refactorizar un poco de lógica específica o algo más ... Simplemente no puedo ser tan eficiente en la edición en Eclipse como puedo en Vim.

También un consejo:

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

Esto hace que ^wfun nombre de clase sea una característica muy agradable para navegar en un proyecto grande.

De todos modos, lo flaco es que, cuando necesito agregar mucho código nuevo, Vim parece ralentizarme simplemente debido al tiempo dedicado a perseguir problemas de compilación y cosas similares. Sin embargo, cuando necesito encontrar y editar fuentes específicas, Eclipse se siente como un mazo. Todavía estoy esperando el IDE mágico para Vim. Ha habido tres intentos importantes que conozco. Hay un complemento viml IDE puro que agrega muchas características pero parece imposible de usar. Hay eclim, con el que he tenido muchos problemas. Y hay un complemento para Eclipse que realmente incorpora Vim. El último parece el más prometedor para un trabajo Java EE realmente serio, pero no parece funcionar muy bien o realmente no integra todas las características de Eclipse con el Vim incorporado.

Cosas como agregar una importación faltante con una pulsación de tecla, código hilight con problemas de tipeo, etc., parece ser invaluable desde su IDE cuando se trabaja en un gran proyecto Java.

Arjan Tijms
fuente
55
vote por "^ wf" No sabía que hay tal cosa en vim :)
Krzysztof Krasoń
44
¿Puedes explicar más sobre ^ wf? ¿Que hace?
user2427
1
Abre el archivo / clase java ( .javano se necesita la extensión del nombre de archivo ) debajo del cursor en una nueva ventana dividida si puede encontrar el archivo. Por eso :set path=**es útil.
exic
Entonces, ¿los ** son literalmente dos asteriscos?
taco
1
@lijat :help ^wf- al igual que otros vim help
JESii
22
  • ¿Cómo invoco una tarea maven sin salir de vi?

    Maven no es diferente a cualquier otro comando de shell:

    :!mvn

    Puede hacerlo :set makeprg=mvnsi ya tiene una asignación de teclas favorita para :make.

  • ¿Puedo obtener la finalización del código?

    Sí, eclim es genial, un puente entre la eficiencia de edición de vim y el conocimiento específico del lenguaje Java de Eclipse.

    <C-n>y <C-p>no son tan geniales, pero son increíblemente útiles.

  • ¿Cómo es el resaltado de sintaxis?

    Más que suficiente para un highligher basado en expresiones regulares.

Es posible que desee considerar herramientas para otros fines de vim + java, como plantillas de código ( snippetEmu : los fragmentos predeterminados apestan, pero la personalización brilla), buscando usos y yendo a declaraciones (eclim, grep, ctags), generando getters y setters ( java_getset , o eclim), importaciones automáticas (eclim). También es posible que necesite un shell de Java para experimentos rápidos ( BeanShell , alias bsh).

ngn
fuente
1
gracias por el consejo de BeanShell, no sabía sobre esa herramienta
GoingTharn
8

Sé que esto es unos años más tarde, pero aquí hay algunos complementos interesantes. Todavía no he probado ninguno de estos, así que YMMV.

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

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

EDITAR: Oh, por cierto, he intentado eclim de vez en cuando, pero la razón por la que me gusta vim es su ligereza. Ejecutar eclipse, incluso en modo sin cabeza, es demasiado para mí.

EDIT2: He estado usando playframework últimamente y esto probablemente también funcionará con compilaciones de Maven:

  • Para la compilación, puede configurar la marca de VIM para ejecutar maven o, en mi caso, ejecutar un script de compilación, unirlo a un archivo.

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

"play_compile" es solo un script de compilación. Utiliza SBT, por lo que Maven debería funcionar bien aquí. Incluso javac directo funcionará. De esta forma, puede usar el búfer de corrección rápida de VIM (: cnext,: clist: cprev, etc.).

  • Para saltar alrededor de las clases, uso ctrl-p . Es bonito. Úsalo. Más rápido que el eclipse al saltar alrededor de los archivos.

  • Para saltar métodos, utilizo tagsearch con etiquetas c exuberantes. Salte a las declaraciones de método usando ctrl-]. Regrese usando Ctrl-o. No funciona tan bien como el eclipse, pero funciona lo suficientemente bien.

  • Yo uso supertab para completar el código. Javacomplete es bastante lento, así que me quedo con omni-complete. Nuevamente, no es tan preciso como el eclipse, pero es rápido y funciona lo suficientemente bien para mí.

critium
fuente
5

Usa vim. ^ - ^ (gVim, para ser precisos)

Lo tendrás todo (con algunos complementos).

Por cierto, snippetsEmu es una buena herramienta para codificar con fragmentos útiles (como en TextMate). Puede usar (o modificar) un paquete prefabricado o hacer el suyo.

Berzemus
fuente