spacevim java vim ide

java - spacevim install



¿Consejos para usar Vim como IDE de Java? (7)

Acabo de subir este plugin de Vim para el desarrollo de proyectos de Java Maven.

Y no te olvides de configurar el resaltado si aún no lo has hecho:

https://github.com/sentientmachine/erics_vim_syntax_and_color_highlighting

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

Dado que se trata principalmente de un editor de texto y no de un IDE, ¿alguien ha tenido trucos para facilitar el desarrollo de aplicaciones Java?

Algunas preguntas que tengo:

  • ¿Cómo invoco una tarea de experto sin abandonar vi?
  • ¿Puedo obtener la finalización del código?
  • ¿Cómo se destaca la sintaxis?

Cualquier otra cosa (aparte de "¡No lo hagas!") Que deba conocer.


Algunos consejos:

  • Asegúrese de usar vim (vi mejorado). Linux y algunas versiones de enlace simbólico de UNIX vi a vim.
  • Puede obtener el código completo 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 :-)



He sido un usuario de Vim por años. Estoy comenzando a encontrarme a mí mismo iniciando Eclipse ocasionalmente (usando el plugin vi, que, tengo que decirlo, tiene una variedad de problemas). La razón principal es que las compilaciones de Java tardan bastante ... y cada vez son más lentas y más lentas con la incorporación de frameworks de construcción altamente componentes como maven. Así que validar tus cambios suele llevar bastante tiempo, lo que a mí me parece que a menudo lleva a acumular un montón de problemas de compilación que tengo que resolver más adelante, y filtrar a través de los mensajes de confirmación lleva un tiempo.

Cuando tengo demasiados problemas con la compilación, enciendo Eclipse. Me permite hacer pastel de los cambios. Es lento, brutal de usar, y no es tan bueno como un editor como lo es Vim (he estado usando Vim durante casi una década, así que es una segunda naturaleza para mí). Encuentro para la edición de precisión -que necesita 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 editando en Eclipse como puedo en Vim.

También un consejo:

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

Esto hace ^wf en un classname una característica muy agradable para navegar un proyecto grande.

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

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


Sé que esto es unos años más tarde, pero aquí hay algunos complementos interesantes. No he probado ninguno de estos todavía 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 el eclipse incluso en el modo sin cabeza es demasiado trabajo mental para mí.

EDIT2: He estado usando playframework últimamente y esto probablemente funcionará también con maven builds:

  • Para la compilación, puede configurar make de VIM para ejecutar Maven o en mi caso, ejecutar un script de compilación, ponerlo en 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 el javac directo funcionará. De esta forma, puede usar el buffer de quickfix de VIM (: cnext,: clist: cprev, etc.).

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

  • Para saltar métodos, utilizo tagsearch con c-etiquetas exuberantes. Salta a las declaraciones de métodos usando ctrl-]. Vuelve 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-completo. De nuevo, no es tan preciso como el eclipse, pero es rápido y funciona lo suficientemente bien para mí.


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

Lo tendrás todo (con algunos complementos).

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


  • ¿Cómo invoco una tarea de experto sin abandonar vi?

    Maven no es diferente a cualquier otro comando de shell:

    :!mvn

    Puede :set makeprg=mvn si ya tiene una asignación de clave 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 la conciencia específica del lenguaje Java de Eclipse.

    <Cn> y <Cp> no son tan geniales, pero increíblemente útiles.

  • ¿Cómo se destaca la sintaxis?

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

Es posible que desee considerar herramientas para otros propósitos de vim + java, como plantillas de código ( snippetEmu -default snippets suck, 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). Es posible que también necesite un shell de Java para experimentos rápidos ( BeanShell , aka bsh ).