¿Vim o Emacs son prácticos para lenguajes como .Net o Java? [cerrado]

18

Por lo tanto, soy principalmente un desarrollador .Net que hace algunas cosas en Java, Python y algunas otras de vez en cuando. He escuchado a mucha gente alabar a Vim y Emacs por aumentar enormemente la eficiencia una vez que se aclaran los conceptos básicos. Definitivamente puedo ver cuántas de las características podrían ser muy útiles con suficiente práctica, e incluso creo que la curva de aprendizaje probablemente valga la pena. Sin embargo ... parece que realmente tendría que ser algún tipo de mago de macros y teclas de acceso rápido para ser tan eficiente en Vim o Emacs como el desarrollador promedio en Visual Studio, Netbeans, Eclipse u otras plataformas. He comenzado a aprender a usar Vim y creo que algunas de sus características son increíbles (por ejemplo, la edición de columnas), pero parece que muchas de las herramientas proporcionadas por los IDE pesados ​​simplemente no se pueden reemplazar, incluso el texto más jugoso editor.

  • generar archivos dbml para Linq-to-SQL
  • Pruebas automatizadas
  • diseño de interfaces de usuario
  • Creación / organización de proyectos y soluciones.

Sé que Vim y Emacs pueden hacer muchas de las mismas cosas con mucha fuerza que VS puede (como intellisense, refactorización, etc.) y puede hacer algunos o todos los ejemplos que proporcioné, pero es realista decir que alguien que trabaja en estas plataformas realmente se beneficiaría de Vim o Emacs?

Morgan Herlocker
fuente
2
Trabajamos en Eclipse en mi tienda, pero hay un tipo aquí que usa a Vim como su editor de pimary y Eclipse solo para compilar y tareas de tipo gestión de código.
Michael K

Respuestas:

14

Hay una combinación de conceptos allí, lo que tal vez no sea sorprendente, ya que VS combina muchas características bastante dispares. Una cita (de este sitio) sugiere que Emacs no es un buen IDE, Unix es un buen IDE. La idea es que en el mundo Linux / Unix, confíes en múltiples herramientas especializadas que funcionan bien juntas en lugar de una herramienta monolítica que lo hace todo.

Ahora, principalmente programo en C #, y uso VS para hacer eso. También me encanta Emacs y lo uso básicamente para todo lo demás. Ahora, como usted dice, lo que puede hacer en Emacs y lo que es mejor hacer en Emacs son distintos. Pero en muchos casos no es un mapeo 1 a 1 y hay diferentes maneras de alcanzar los mismos objetivos utilizando un editor de texto u otras herramientas.

Originalmente iba a abordar cada uno de sus puntos, pero la respuesta siempre se reducía a "sí, podría" de alguna forma. Por lo general, confiaría en: 1) una herramienta externa (como un diseñador de interfaz de usuario) para generar código para usted, importarlo; 2) soporte de automatización desde el interior del editor (como el código Elisp en Emacs) para automatizar tareas repetitivas; o 3) se ajustaría a usar herramientas basadas en texto en lugar de herramientas visuales (como usar MSBuild y escribir sus propios archivos de proyecto en lugar de confiar en la configuración de VS).

En el mundo de Emacs, no tiene una herramienta que lo haga todo, tiene muchas herramientas y la capacidad de cultivar más herramientas a medida que las necesita. Todavía no lo sé lo suficiente como para hacer todo eso, así que uso VS y estoy contento con las herramientas que me brinda. VS es un IDE realmente poderoso y realmente bueno. Ahora, si estuviera haciendo Java, tendría que debatir qué herramienta usaría porque no conozco muy bien Eclipse o IntelliJ. Para cualquier otro idioma, Emacs gana bastante porque va a hacer mucho más por mí que cualquier otro editor de texto o IDE a medio hacer que esos idiomas podrían usar. (Excepto quizás Smalltalk, pero ese es un caso único).

CodexArcanum
fuente
6

¿Pero es realista decir que alguien que trabaja en estas plataformas se beneficiaría realmente de Vim o Emacs?

Permíteme darte mi ejemplo: trabajo en un sistema que está codificado en gran medida (pero no al 100%) con C #. El sistema no se puede construir desde Visual Studio, es demasiado complejo. Por lo tanto, no tengo un archivo sln (algunas personas intentaron mantener uno aunque no construimos el producto con él, pero resultó ser una tarea imposible) y no tengo los beneficios de intellisense, exploración de código, diagramas de clase, etc. La herramienta que funciona para mí es vim + ctags. Incluso eso no es perfecto (los ctags son fáciles de confundir), pero mucho mejor que usar un editor de código inferior sin soporte de exploración de código.

Ahora, entiendo que la mayoría de los desarrolladores de .NET o Java no están en la misma posición que yo y que probablemente estén mejor usando un IDE si tiene un buen editor de código o al menos un complemento que mejore el predeterminado. Para Visual Studio hay complementos como VsVim que pueden hacer que la experiencia de codificación sea más agradable. Lo mismo para Eclipse AFAIK.

Nemanja Trifunovic
fuente
3

Dudo que haya muchos que usen VIM o Emacs exclusivamente. Pero todavía tengo que encontrar un desarrollador que no use un editor de texto (ya sea uno de esos u otro) en lugar de un IDE completo para algunas cosas, a menudo muchas cosas.

Recuerde que hay mucho más en su trabajo que escribir código Java, C # o C ++. Hay scripts ANT, archivos MAKE, archivos XML, archivos de configuración de muchos tipos. Y para muchas tareas pequeñas, el tiempo de inicio de ese IDE puede ser simplemente demasiado largo. Eclipse puede tardar minutos en iniciarse, VS similar. Para cambiar rápidamente algo en una sola fuente, o simplemente verificar algo en un archivo conocido, eso es demasiado largo. Cargar el archivo en VIM solo lleva unos segundos.

jwenting
fuente
1
aunque notepad ++ también.
Raffael
nunca usé ese, pero de hecho he visto a otros usarlo (soy un VIM flunky :)).
Jwent
2

Encuentro que usar un IDE y vim (mi editor favorito personal) no son conceptos mutuamente excluyentes. Al hacer el desarrollo .NET, generalmente configuro un combo de teclas de acceso rápido que abrirá el archivo actual en el que estoy trabajando en el IDE en vim y colocará el cursor en el mismo lugar. De esta manera, si quiero hacer el tipo de cosas en las que vim es excelente (como usar macros, edición vertical, re-sangría, diferenciación, etc.), entonces presiono el combo de teclas y golpeo. Tengo mi editor favorito, haga mis cambios, guardo el archivo y salgo, y luego vuelvo al IDE nuevamente (puede configurarlo para que el archivo se vuelva a cargar automáticamente cuando se edite fuera del IDE en VS). De esta manera obtengo lo mejor de ambos mundos.

Solía ​​usar lenguajes de secuencias de comandos para manipular archivos de texto de formas complicadas. Una vez que descubrí el poder de usar las macros de vim (y algunas otras características también) descubrí que puedo hacer este tipo de ediciones / manipulaciones mucho más rápido y eficientemente que con un lenguaje de script.

Es muy común para mí generar scripts de shell para hacer algunas cosas complicadas usando vim, ejecutar el script de shell que construí y luego tirarlo.

mis 2 centavos :)

Gary Watson
fuente
Sí, jugué con algunos complementos para VS para saltarme a emacs, usar emacs como la "ventana del editor de código" o simplemente usar las combinaciones de teclas de emacs. No he amado ninguno de esos. Sin embargo, una macro para abrir emacs y saltar al mismo punto del cursor parece una idea genial. Quizás debería probarlo. Principalmente solo copio y pego entre los dos cuando necesito hacer una manipulación de texto pesado.
CodexArcanum
0

Eche un vistazo a los proyectos OpenIDE y Pruebas continuas . El primero se centra en agregar soporte para proyectos .NET a cualquier editor, incluidos VIM y Emacs. El otro es un corredor de prueba continuo similar al AutoTest / pythons Sniffer / Autonose de ruby. Se puede ejecutar como un complemento VS o independiente.

sumek
fuente