2010-09-30 19 views
8

... o vi/vim solo se usa cuando se desarrolla en un sistema operativo que no es de Windows?¿Los desarrolladores realmente usan vim para escribir código (Java) en un sistema operativo Windows?

En caso negativo, ¿qué función (es) proporciona vim que los IDEs modernos como Eclipse no lo hacen? ¿Por qué uno elegiría usar vim sobre Eclipse (o IntelliJ, Websphere u otros IDE con numerosas funciones) cuando se desarrolla en una estación de trabajo con Windows? Tenga en cuenta que me refiero al desarrollo de Java y, en cierta medida, a los lenguajes compilados, no a los scripts de shell u otras formas de scripting.

+2

No necesito votar para cerrar Creo que: es una pregunta interesante y las respuestas hasta ahora son buenas – SyntaxT3rr0r

+0

@Webinator: No relacionado con la programación aunque probablemente se ajuste mejor aquí: http://bit.ly/ProgrammersQA - http://programmers.stackexchange.com/ – OscarRyz

+0

Cuando quieras escribir un Hello World. – irreputable

Respuesta

20

Java es un lenguaje ridículamente complicado y no puedo pensar en una sola persona que haya memorizado todos los parámetros del método y los tipos de devolución de las clases incluidas en el JDK. Siendo que Java es auto-documentada a través de los comentarios de JavaDoc y convirtiéndolos en páginas de manual a través de los cuales se busca, no tiene sentido cuando tienes un IDE como Eclipse que llamará la documentación específica para un método o clase en particular.

En resumen, cuando usa (g) Vim, a menos que esté utilizando algunas extensiones pesadas, está volando a ciegas la mayor parte del tiempo y tiene la mayor parte de la lógica resuelta en su cabeza (o, está usando screen(1) y tiene la página man abierta en el otro terminal).

Soy un gran admirador de Vim, pero para idiomas más grandes y pesados ​​como Java, no usaría otra cosa que Eclipse. Una vez, un amigo mío conjeturó que el desarrollo de Java era casi imposible sin un IDE inteligente y estoy de acuerdo.

+1

O, para responder a la pregunta en el título del OP: "Windows no es amigable para desarrolladores, solo mira COM". – amphetamachine

+0

Desarrollé en Windows la mitad de mi vida y nunca tuve que lidiar con nada relacionado con COM. No digo que no es miserable (he visto a otros tratar), pero incluso si estuviéramos de acuerdo en que Windows no era compatible con el desarrollo, en general es fácil de usar y los desarrolladores son usuarios. – Manius

+1

no tan pesado: http://www.vim.org/scripts/script.php?script_id=1785 – idbrii

4

vim permite el acceso remoto y de cliente ligero a través de Telnet o SSH, mientras que Eclipse no puede. Lo máximo que puede hacer es usar el escritorio remoto, lo que puede ser inconveniente y lento. Además, vim se ha desarrollado durante muchos, muchos años y algunas personas están bastante acostumbradas al medio ambiente. vim también es increíblemente rápido, y permite el dominio sobre el código a través de una multitud de comandos clave, si usted es un experto :)

Es posible usar las funciones de Eclipse a través de vim (vea Eclim - http://eclim.org/) pero esto todavía está en desarrollo y puede ser inestable o difícil de configurar.

Lo que obtienes de Eclipse es una interfaz de usuario muy rápida si la estás usando localmente, con muchas herramientas de refactorización potentes. Sin embargo, a algunas personas les gusta la ruta simple :)

+0

He estado desarrollando en UNIX de forma remota durante más de cinco años (usando VNC) y creo que es mucho mejor usar que vi para el desarrollo. Sin embargo, para editar archivos aleatorios como/etc/hosts, todavía uso vi. Habiendo usado IntelliJ, Netbeans y Eclipse, solo usaría IntelliJ porque es más agradable editar y refactorizar. –

+0

No entiendo por qué alguien ** necesita ** acceder al código fuente de forma remota en lugar de construir localmente (aprovechando cosas como el control de versiones de código fuente integrado) y simplemente hacer un ftp u otro proceso de implementación? (A menos que estén haciendo pequeños cambios directamente en un servidor de producción o algo loco, pero eso no puede ser habitual). – Manius

+0

@Crusader: Supongo que a veces es necesario desarrollar en el entorno exacto en el que funcionará su programa. –

1

Descargue gvim para windows, parece exactamente lo mismo que el equivalente de Linux.

1

Vim también resalta la sintaxis para múltiples lenguajes de programación. Esto, junto con los atajos de teclado, lo convierte en una herramienta mejor para realizar cambios de código menores que iniciar Eclipse e ir al archivo relevante.

+0

Eclipse puede tomar demasiado tiempo para iniciarse, pero después de realizar un cambio de este tipo siempre desearía verificar el control de la fuente, así que estoy dispuesto a esperar unos pocos segundos extra la mayor parte del tiempo. (No estoy seguro si Vim se integra con SVN) – Manius

2

vi editor es "en su mayoría" utilizado por un usuario * nix en un entorno de línea de comandos, por ejemplo, si la única opción para conectarse a la caja Unix/Linux es a través de clientes telnet/ssh.

Si su máquina/escritorio cliente es, por ejemplo, Linux con Genome o KDE, preferiría siempre entornos de tipo Eclipse que le brinden características como creación y gestión de proyectos, conexión a repositorios de código, fácil navegación a través de múltiples archivos y depuración, etc.

Pero conozco a algunos fanáticos de vi o emacs que todavía usan invariablemente vi o emacs para todos los propósitos prácticos.

vi o emacs son herramientas de programación muy completas. puedes hacer casi cualquier rey de navegación y edición con los comandos basados ​​en combinación de teclas. Pero son un poco difíciles de manejar con ellos e incluso si eres un experto, trabajar en múltiples archivos y grandes proyectos es difícil según mi experiencia.

Pero usar vi en una máquina con Windows es muy raro y si alguien lo hace, no puedo imaginar el motivo.

+0

Trabajo en una compañía donde la mitad de los programadores usan gvim para editar su código y Visual Studio para depurarlo. Una tecla para voltear hacia el otro. –

+0

¿Pero por qué? Esa es la pregunta que estoy haciendo. ¿Qué características o capacidades específicamente motivan esto? (Además, VS no es Java, por lo que está un poco fuera de tema, pero sigue siendo una pregunta interesante.) – Manius

8

Cuando estás acostumbrado a un poderoso "editor de texto", ya sea Vim o Emacs (no hay flamewars aquí), que puede ser en el momento muy difícil de usar un editor de texto "menor", como los proporcionados por predeterminado por los diversos IDEs.

Lo que hago es simple: a veces me hago necesidad de hacer cosas en mi .java archivo de origen que simplemente se hacen rápidamente bajo Emacs. ¿Entonces qué hago? Cambio de mi IDE a Emacs (está a un acceso directo, en otro escritorio virtual), hago mis cosas y vuelvo a IntelliJ IDEA (mi IDE Java de elección).

El problema es que, como amphetachine señaló: usando solamente vim o Emacs para hacer el desarrollo de Java se siente como vivir en la Edad de Piedra.

En el mejor de los dos mundos, el "editor de texto" en el centro de mi IDE sería Emacs (o vim) y presenta todos los brillantes errores/advertencias en tiempo real, finalización de código, cruce de códigos y lo que buenos IDEs de Java tienen.

PS: aquí hay un upvote 7, +4 favoritos pregunta que hice en cuanto a cómo siempre para sincronizar .java (u otros archivos para el caso) entre Emacs y IntelliJ IDEA:

Emacs: Often switching between Emacs and my IDE's editor, how to automatically 'synch' the files?

+0

¿Qué características (funciones) específicas necesita hacer que no se pueden hacer en un IDE? – Manius

+1

@Crusader: es fácil construir su expresión regular en vim (con incsearch que está deshabilitado en Eclipse cuando la expresión regular está habilitada). También es rápido para ordenar el texto seleccionado (o pasar una selección a cualquier filtro de línea de comando como sort, grep o comm). También macros Vim. – idbrii

+0

@Crusader: comentando después de un largo tiempo ... Básicamente, si preguntas qué ofrece Emacs que IntelliJ o Eclipse no es que nunca has ** realmente ** usado Emacs;) En serio. – SyntaxT3rr0r

2

Véase la respuesta a la pregunta this:

a pesar de multitud de plugins de Vim, nada se acerca a la refactorización en cuenta el idioma y las capacidades de codificación del IDE moderno.

Cuando trabaje con proyectos de gran tamaño, nunca es suficiente el potente editor. Debe poder navegar a través de cientos de clases, encontrar todos los usos, anulaciones y demás. Debe poder refactorizar su código fácilmente. IntelliJ IDEA y Netbeans tienen muchas funcionalidades y accesos directos específicamente dirigidos al desarrollo de Java. Vim es una gran herramienta, pero java es más adecuado para IDEs, y deberías usar esto para tu ventaja.

2

Yo era un usuario de hardcore, pero cambié a Eclipse.

Hay dos complementos/combinaciones de teclas vi para él. Uno es gratis, el otro es comercial. Preferí el comercial: parece funcionar mejor para ciertas cosas.

Eclipse puede hacer muchas cosas que los gvim no pueden hacer (o hacerlos más fáciles).

Compilación/depuración/ejecución.
Configuración del entorno de compilación.
Javadocs, finalización de código, etc. Refactorización, plugins de control de código fuente, organización de código.
Configuración del proyecto, etc. Es fácil compartir un proyecto con otros desarrolladores. Muchos de los proyectos de Java de FOSS tienen eclipses para una fácil configuración.

Solo por nombrar algunos.

Cuestiones relacionadas