¿Debe un programador aprender editores de texto como Emacs y Vim? ¿Qué tan importantes son? [duplicar]

43

Hasta ahora he estado escribiendo código en editores de texto convencionales que vienen con el sistema operativo hasta el momento o usan un IDE en algunos casos. Sé que hay algunos editores de texto avanzados como Emacs y Vim disponibles únicamente para los codificadores. ¿Qué tan importantes son realmente? ¿Debería un programador que trabaja con PHP , Python , etc., aprender estos editores? ¿Cuáles son las ventajas que ofrecen sobre los editores convencionales como Notepad++ , Scribes etc.?

    
pregunta David Halter 17.04.2011 - 17:26

12 respuestas

30

Vim es una herramienta realmente buena una vez que te familiarizas con ella.

Se inicia más rápido que cualquier IDE o editor de texto que he usado, tiene resaltado de sintaxis y sangra el código correctamente en la mayoría de los casos.

También te ayuda a concentrarte en el proceso de codificación en sí mismo, no usarás el mouse para lidiar con él, eso te ahorrará mucho tiempo cuando solo estés escribiendo un código.

También tiene una gran cantidad de complementos para lo que sea que estés haciendo.

No he usado Emacs para ser honesto, pero estoy seguro de que hay personas a las que les gusta, personalmente no me gusta tener que presionar Ctrl o Alt todo el tiempo.

Editar

La utilidad de Vim también depende de lo que estés escribiendo.

Si eres un desarrollador de API (Java, C # ... etc) lo más probable es que te sientas más cómodo con un IDE.

Pero si escribe scripts (Bash, Perl ... etc), Vim podría ser el camino a seguir, ya que necesita escribir algo rápido, Vim es rápido y hace todo lo que necesita.

    
respondido por el Mahmoud Hossam 17.04.2011 - 17:35
47

Un programador no necesariamente debe aprender muchas herramientas, sino aprender algunas y aprenderlas bien.

Emacs y vim tienen sus puntos fuertes distintos, pero creo que a menos que los utilices mucho de forma regular, no te beneficiarás lo suficiente. Especialmente no si eres un programador de aprendizaje.

Usted lo hará , sin embargo, se beneficiará de un buen IDE, pero también debería poder realizar un trabajo real con un simple y simple editor.

    
respondido por el user1249 17.04.2011 - 17:36
16

La importancia de vi es que siempre lo encontrará en cualquier versión de UNIX (estándar tanto en SysV como en BSD) o en un sistema similar a UNIX. Sin embargo, tenga en cuenta que puede ser original vi , no vim . No se te garantiza tener instalado ningún otro editor. También en Linux está en /bin , por lo que está disponible incluso si /usr no se pudo montar.

    
respondido por el vartec 17.04.2011 - 19:30
15

¿Eres un mecanógrafo de toque rápido? ¿A menudo desea más atajos de teclado para realizar ediciones? ¿El tiempo que dedicas a la edición interrumpe tu tren de pensamiento? ¿Encuentras pequeñas cosas sobre tu editor que desearías poder personalizar para que funcionen como te gustan? ¿No le importa gastar potencialmente mucho esfuerzo por adelantado si eso significa que le ahorrará más tiempo y esfuerzo a largo plazo? ¿No te molesta la gente que te considera anacrónico? Si es así, entonces vim puede ser una buena opción para ti.

¿Prefieres poder descubrir tu editor sin leer el manual, incluso si eso significa menos funciones? ¿Te sientes más cómodo usando lo que están usando todos los demás en la oficina? ¿Usas el ratón para todo? Si es así, entonces vim puede no ser una buena opción para ti.

    
respondido por el Karl Bielefeldt 18.04.2011 - 05:39
6

Creo que aprender Emacs (y probablemente Vim también) es muy útil. ¿Por qué? Simple: puedo usar el mismo editor excepcionalmente capaz para más o menos todo lo que hago.

Esto es genial porque soy un estudiante, aprendiendo constantemente cómo usar cosas nuevas y brillantes. Este año, jugué un poco con Haskell, hice un montón de JavaScript, usé Scheme, escribí algo de Java, anduve con Perl, trabajé en un sitio web ... Emacs fue genial para todo esto.

En el pasado, tuve algunos problemas con diferentes idiomas: escogería Perl o Python, pero tampoco pude encontrar un buen editor. Ahora, sé que siempre puedo usar Emacs. Por supuesto, a veces Emacs no tiene todas las funciones que quiero, pero siempre tiene suficientes funciones para usar en proyectos rápidos. Para proyectos más largos, puede necesitar cierta personalización, pero el tiempo que se tarda en hacerlo es probablemente igual a obtener y aprender un nuevo IDE.

En resumen: Emacs es genial porque admite muchos idiomas diferentes, y es lo suficientemente potente incluso sin el apoyo de un idioma específico para hacer que la vida sea mucho mejor.

    
respondido por el Tikhon Jelvis 18.04.2011 - 09:54
5

No

Si desea aprender a usarlos, no lo haga en un entorno de producción. Hágalo en su tiempo de inactividad o en un tiempo específico para acostumbrarse a escribir código en ellos. Cuando tenga más experiencia, introdúzcala en su entorno pero mantenga cerca el programa al que está acostumbrado. Me mantuve al frente cerca cuando decidí transferirlo a un editor de texto puro, hasta que tuve la confianza suficiente de que ya no lo necesitaba.

    
respondido por el Mallow 18.04.2011 - 08:38
5

Hay al menos tres razones por las que un programador recién creado puede dedicar un tiempo a aprender emacs y vi:

  • tradición: tanto vi como emacs han existido desde que Moisés recogió su producción en tablas de piedra. De hecho, Dios mismo puede haber inventado vi o emacs, y el demonio el otro, pero obtendrás diferentes respuestas en cuanto a quién inventó, dependiendo de a quién le preguntes. (Ha escuchado que es un argumento religioso , ¿verdad?) En cualquier caso, estos dos editores han habilitado un poco de historia e historias y chistes con la participación de ellos abundan. Puede que te sientas incapaz de entender tus raíces sin un cierto conocimiento de ambos. Por ejemplo:

      

    ¿Cuántos usuarios de vi se necesitan para cambiar una bombilla?

         

    ne, siempre y cuando no se olvide de ingresar primero al modo "insertar". *

  • inercia: Hay muchas personas que tienen emacs y / o vi pulsaciones de teclas grabadas en sus neuronas, como la puntuación más alta en una máquina Defender. No creo que nadie sostuviera a ninguno de los dos editores como un ejemplo brillante del diseño moderno de la interfaz de usuario, pero dado que muchas personas ya conocen los comandos, los editores más nuevos a menudo incorporan soporte para los comandos vi y / o emacs. MacOS X es quizás el mejor ejemplo de esto: puede use un número sorprendente de comandos comunes de emacs en cualquier aplicación basada en Cocoa (a menos que sea uno de esas personas y instale un administrador de entrada basado en vi ). Muchos IDE y editores de texto en todas las plataformas principales ofrecen enlaces clave para vi y / o emacs, y probablemente lo harán durante mucho tiempo. Entonces, al igual que aprendió a escribir en un teclado QWERTY, probablemente también obtendrá algunos comandos derivados de un editor de texto antiguo, ya sea que lo sepa o no.

  • poder: No estoy tan seguro acerca de vi, pero es seguro decir que hay muy pocos editores que se acercan al poder y la flexibilidad disponibles en emacs. ¿No te gusta la forma en que algo funciona? Tú puedes cambiarlo. ¿No tienes ganas de abandonar tu editor para usar la línea de comandos? No hay problema, puedes hacer todo lo que necesites dentro de emacs. Tendrá que pasar mucho tiempo estudiando en los pantanos de Dagobah para aprender a aprovechar todo ese poder, pero algunas personas pueden encontrar que vale la pena, tal vez incluso por su propio bien. vi es más como una herramienta Leatherman que cuelga en tu cinturón: versátil, siempre lista y utilizable para todo tipo de cosas.

Ahora bien, ¿es importante aprender vi y / o emacs? Diría que es útil saber algo sobre ambos, especialmente para que sepas al menos un poco si alguna vez necesitas usarlos (puedes hacerlo). Pero no saberlos no necesariamente te detendrá. Es mucho más importante saber cómo manejar las herramientas que usa a diario de la manera más efectiva posible.

* Eso no es un error tipográfico: lo obtendrá después de pasar la primera hora con vi.

    
respondido por el Caleb 19.07.2012 - 05:09
3

Si necesita aprender un editor para programación, hágalo emacs. ¿Por qué?

Si necesito hacer un rpm y abro emacs, y le digo que encuentre un archivo que termine con la extensión .spec ¡WHAM! Aparece un archivo de esqueleto con todas las etiquetas y macros ya completadas con texto codificado por colores.

Y si quiero enviar a mi control de versión favorito, esc-x load-library mercurial (o git o svn) pone a Emacs en el estado de ánimo para desplegar los comandos correctos desde su menú de control de versiones o para reconocer los comandos como ctrl-x vv para registrar o retirar el código desde un repositorio, y para hacer todo lo que uno puede hacer con un repositorio.

La fatiga óptica se produce cuando uno mira a los mismos colores durante demasiado tiempo. Uso konsole para ventanas de terminal y cambio los colores con frecuencia. Con emacs no en una ventana de terminal, tengo más de 50 temas de colores para elegir, algunos de ellos con un contraste bajo y cómodo, como el de Alice Blue, y algunos que apuñalan los ojos como la euforia cuando necesito mantenerme despierto.

Codifico una gran cantidad de python. Cuando necesito probar algunos códigos para la sintaxis, no dejo emacs. Arranco el intérprete de Python, y la pantalla se divide, luego guardo mi archivo de Python y lo importo para verificar la sintaxis. Aparecerá un error, y puedo solucionarlo inmediatamente. Cuando termine, puedo cambiar a una ventana sin dividir y continuar trabajando.

Algunas personas dicen que usa vi, y yo lo uso en algunos sistemas SUN más antiguos ... Tengo un ritmo regular: pulso i e inserto un carácter, luego presiono escape y presiono i nuevamente y escribo el siguiente carácter ... (Apenas mejor que ed, pero es lo que está disponible).

Por lo general, mi primera instalación en cualquier sistema nuevo es zile. GNU zile es emacs sin todo el aspecto de la ventana como navegación, correo electrónico e irc y colores, solo un binario con código C que funciona en aproximadamente 100k y utiliza códigos de clave emacs.

Si los emacs son tan onerosos como la mayoría de los que intentan hacer que suene, debería ser sorprendente que tantas personas fueran glotones de autoflagelación al hacer editores similares a los de emacs. MINCE no está completo Emacs, los 31 sabores de micro-emacs, Jed, Zile, Joe y una codificación de Python de bicho raro o dos más YMacs basados en la web, son todos emacsen. peppy enlace es una toma diferente, que utiliza códigos de clave emacs y codificados en Python y que se editará casi todo, incluidos fragmentos de datos binarios, y tiene docenas de modos para lenguajes de programación, pero su paradigma de codificación clave es emacsen.

Sí, emacs vale la pena aprender, y también lo es vi. Del resto, tal vez Eclipse sea tan útil, si puedes soportar la perversidad de sus muchos insertos. Y si necesita algo REALMENTE pequeño, liviano y rápido, revise e3. La versión x86 está escrita en ensamblador y sirve a muchos conjuntos de códigos de clave, incluidos Emacs y Vi. enlace

Y oh sí, abro emacs, escribo 17 páginas y BLAP! Los rayos caen y mi poder se apaga. Cuando se restaura la energía, miro el trabajo y descubro que perdí los últimos 7 caracteres que escribí ... Y si decido seguir el procedimiento de "recuperar sesión colapsada", puedo reducirlo a 2 perdidos.

El código de Python no cree en la sangría, DEPENDE de ellos. Emacs lo sabe y se asegura de que su sangría sea correcta. Pero si decide eliminar un "si", tendrá una región completa en el estado de sangrado incorrecto. Con emacs arreglas eso por:

espacio de control y teclas de flecha para resaltar la región

ctrl-c < Para superar todos los códigos resaltados. (ctrl-c > vuelve a sangrar, correctamente).

Creo que he usado más de 60 editores, y aún el que vuelvo es emacs, no porque pueda obtener los stubs de código de función en C o la sangría adecuada o el código de colores, sino porque puedo personalizarlo más allá de su ya impresionantes capacidades. La idea original de Richard Stallman fue adaptada por tantos ...

    
respondido por el Michael Moore 18.07.2012 - 23:02
3

Hoy en día, la popularidad de los diversos tipos de adoración de editores probablemente proviene del libro Pragmatic Programmer ,

o, para ser precisos, de lectores que abarrotaron sin pensar Capítulo 3 Herramientas básicas - > Edición de energía - > Un editor pero perdió totalmente la clave (¡pragmática!) Para llevar presentada en el capítulo Prefacio:

  

No hay respuestas fáciles. No existe una solución mejor , ya sea una herramienta, un idioma o un sistema operativo. Solo puede haber sistemas que sean más apropiados en un conjunto particular de circunstancias.

     

Aquí es donde entra en juego el pragmatismo. No debe estar vinculado a ninguna tecnología en particular, sino que tiene una base de antecedentes y experiencia lo suficientemente amplia como para permitirle elegir buenas soluciones en situaciones particulares ...

     

Ajusta su enfoque para adaptarse a las circunstancias actuales y al entorno. Usted juzga la importancia relativa de todos los factores que afectan un proyecto y utiliza su experiencia para producir soluciones apropiadas. Y haces esto continuamente a medida que avanza el trabajo.

Si uno obtiene la comprensión general como la anterior, solo esto hace que valga la pena leer el libro. La idea principal a tener en cuenta es una que los autores declararon de forma clara y sin ambigüedades, "no existe la mejor solución" .

    
respondido por el gnat 19.07.2012 - 03:09
2

Ni emacs ni vi están diseñados únicamente para la codificación; simplemente son compatibles con funciones que facilitan un poco la escritura de código.

la única virtud de vi es su ubicuidad; Cualquier sistema basado en Unix o Linux tendrá una implementación de vi. Es un año luz más amigable que TECO , pero también utiliza un Etch-a-Sketch. Dicho esto, vi es mi herramienta de edición principal en una sesión de terminal, simplemente porque nunca tuve el ancho de banda para aprender emacs y al mismo tiempo (y emacs tiene demasiadas combinaciones de código clave).

No necesitas para aprender ninguna de las herramientas; hay otros editores de texto de calidad que admiten muchas de las mismas características en un formato más amigable.

    
respondido por el John Bode 18.04.2011 - 02:35
1

No necesita aprender Vi o Emacs, necesita aprender sus herramientas. Imagina un francotirador que no conoce bien las desventajas y las capacidades de su rifle, ¿no sería un buen francotirador? ¿Lo haría él?

Así que ve y encuentra un editor que te guste, puede que te gusten Emacs, Vim, Textmate, Sublime Text ... diablos, tal vez no te guste ninguno de ellos y estás bien con Nano, pero lo que importa es que te sientes cómodo con tus herramientas.

    
respondido por el dysoco 19.07.2012 - 03:08
-5

Lo primero es lo primero. VIM es más productivo para la programación que Eclipse o. Su productividad personal en VIM puede ser abismal, pero el límite potencial de VIM es mucho mayor. Esto es un hecho.

VIM es un arte marcial. Se siente antinatural cuando lo usas por primera vez. Y ni siquiera puedes hacer que funcione. Se requieren años de práctica para llegar a ser gradualmente productivo. Te centras en dominar un pequeño detalle al principio. Lentamente, todos estos bits que domines se van sumando hasta que el texto fluye sin esfuerzo desde la punta de tus dedos hacia la pantalla. Las complicadas ediciones que harían suspirar a tu compañero de trabajo saltarán de tus manos antes de que pueda terminar su exhalación. Hay pocas personas que pueden usar VIM. Menos que puede usarlo productivley. Y puede que nunca te encuentres con un maestro en tu vida. Pero se rumorea que existen.

VIM está diseñado para mantener tus manos en la fila de casa. Mover la mano del teclado al mouse es desmoralizante. Es un movimiento motor grueso. Mover el brazo tiene un efecto psicológico que afecta tu motivación. Usando VIM, alguien podría atornillar sus muñecas al teclado y aún podría abrir fácilmente archivos, dividir ventanas, abrir pestañas, construir el proyecto, buscar / reemplazar, cambiar fuentes, cambiar colores, etc. Y todo a la velocidad del rayo.

VIM es modal. Eso significa que no tienes que hacer combinaciones de teclas complejas donde mantienes presionado control + shift + Key. Esto lastima tus manos a largo plazo. En su lugar ejecutas comandos. No hay necesidad de combinaciones de teclas debido a la naturaleza modal.

Almacenamos datos en nuestra memoria como lo hacen las computadoras. Nuestra memoria solo puede contener unos pocos valores a la vez. Vea cuántos enteros distintos puede mantener en su cabeza antes de que empiecen a deslizarse. Superamos esta limitación humana escribiendo cosas. Si los datos caen de nuestra memoria, podemos ver fácilmente lo que escribimos para recuperarlos. Si dedica su tiempo a hacer ejercicios gruesos, puede perder tiempo en el procesamiento de datos en su cerebro. Quieres que tu mente fluya en la pantalla sin ningún esfuerzo. Puede que no parezca mucho, pero la capacidad de VIM para transferir sin esfuerzo lo que tiene en mente a la pantalla es un GRAN aumento de la productividad. Es difícil poner en palabras lo que estoy tratando de decir.

VIM admite la finalización de código. Basados tanto en textos como en búsquedas. Puede extraer texto de varios archivos. Cualquier cosa que desees se puede tener en VIM. Hazlo tú mismo o usa algo que otra persona cocinó.

VIM es compatible con las definiciones con ctags. También puedes encontrar todas las referencias de un artículo. De nuevo, cualquier cosa que desees se puede tener en VIM.

El scripting de VIM es enorme. Puede descargar o crear miles de combinaciones de colores y cambiar los colores en un instante. Intente cambiar las fuentes o los colores en Microsoft Visual Studio y se bloqueará durante 20 segundos mientras carga los datos. No le permitirá almacenar combinaciones de colores y debe dedicar 30 minutos a ajustar los colores y las fuentes cada vez que desee un cambio de escenario. En VIM, puede configurar el espacio entre líneas en cero para que se ajusten a más líneas de código en la pantalla. Tengo más de 80 líneas. Visual Studio utiliza 2 píxeles de espaciado para cada línea y no se puede ajustar. Menos líneas = más desplazamiento = menos productividad = forzado a usar fuentes pequeñas para más líneas = fatiga visual.

Las ventanas divididas se abren en un instnat en VIM. Es útil cuando necesita mirar los datos en una sección del código que está lejos del lugar donde está escribiendo (o en un archivo diferente). No tiene que perder tiempo cambiando el tamaño de las ventanas, o preocuparse por las ventanas GUI que se superponen entre sí y se quedan detrás unas de otras. Las ventanas de código no relacionadas se pueden abrir en pestañas para no ocupar espacio en la pantalla, pero permiten un cambio rápido.

VIM como IDE: enlace

VIM the revenge: enlace

    
respondido por el mike 19.07.2012 - 02:46

Lea otras preguntas en las etiquetas

Comentarios Recientes

AsuntoDe Jürgen Schullman Gerente de I + D | Los datos son buenos, pero ¿cuántos documentos podemos almacenar en un mes? Un conjunto de datos de, digamos, 8 TB de espacio en el disco duro por mes más recientemente ha tomado 50 días en promedio de principio a fin en mi propio análisis anual de análisis de clúster. ¿Evité usar archivos compartidos durante el tiempo en que se realizó la reunión y el análisis? ¿He simplificado mis herramientas para que mis analistas de nivel superior no las afecten? ¿Hay... Lee mas