2009-02-15 20 views
14

Uso IntelliJ IDEA como editor de código, así que esto no reemplaza eso. Yo uso vivim o para la edición de texto simple en nuestros servidores y unix comandos estándar para encontrar archivos, obtener listados de directorios etc.¿Debo aprender a usar Emacs?

colegas confían en emacs, pero me pregunto si vale la pena mi tiempo aprenderlo. ¿Cuánto más productivo seré?

EDIT: Se ha señalado que esta pregunta has been asked before

Respuesta

2

La diferencia entre emacs y vim emacs es que incluye muchas muchas características y combina electrónico, noticias, gestor de archivos, y por supuesto un editor de texto. Vim solo edita texto y eso muy bien (sin complementos). Depende de ti si te gustan los emacs o no. A mí personalmente me gusta más vim, pero prueba emacs y encuentra el mejor editor de texto adecuado para ti.

2

Honestamente, no creo que sea más productivo en absoluto. Emacs estuvo bien como editor hace una década, pero un IDE moderno -particularmente IntelliJ del que soy un gran admirador- viene con mucho más que un editor, que incluye un depurador, la capacidad de refactorizar su código, mover clases a la perfección y paquetes, etc. etc. etc. Una gran parte del beneficio de productividad de un IDE proviene de esas características en lugar del editor.

Si no está utilizando vi/vim como editor de texto primario (lo que significa que lo usa para un esfuerzo de desarrollo significativo o solo un tiempo significativo), lo que sea que use es auxiliar para su IDE.

+2

"las personas que juran por Emacs probablemente también juran por sus grabadoras de video Betamax". Le invitamos a pensar (correcto o incorrecto) que emacs no es una buena opción, pero esto es poca gracia, y no tiene lugar en este tipo de conversación. – dmckee

+0

Si está ejecutando un entorno gráfico (por ejemplo, Gnome/KDE en Linux), entonces puede ejecutar Eclipse o IntelliJ (probablemente también Netbeans). Si no está ejecutando un entorno gráfico ... en realidad no puedo imaginar que eso sea posible. Transfiera archivos de forma silenciosa desde una PC con Windows si lo necesita. – cletus

+1

"Si no está ejecutando un entorno gráfico ... en realidad no puedo imaginar que eso sea posible". - Obviamente, nunca tuvo que trabajar con un servidor sin cabeza. –

2

'emacs' es genial, pero si te sientes cómodo con 'vi' y no vas a utilizarlo mucho, es mejor que no le dediques mucho tiempo a aprender emacs. emacs es divertido y se vuelve bastante intuitivo con el tiempo. Por lo tanto, yo diría que pasar de 10 a 15 minutos todos los días y ver cómo funciona para usted.

+0

Mi problema es que el segundo día, ¡olvidé todos los comandos! 10-15 minutos no es suficiente tiempo para aprender Creo que –

+1

@Chris: Vea mi respuesta en http://stackoverflow.com/questions/311221 - aprender los "comandos" no es lo importante. Puede que necesite pasar una hora leyendo el tutorial, luego simplemente comience a usar Emacs para toda su simple edición de texto. Eventualmente, podrás usarlo para todo. ;-) – ShreevatsaR

2

Siempre he preferido vim para la edición de texto simple, pero prefiero elisp para extender el editor. Estos días uso emacs para mi edición seria y vim para cosas rápidas cuando estoy ssh'd en un servidor.

3

La elección del editor es algo que todo programador tiene que hacer al menos una vez, pero a menudo repetidamente a lo largo de su carrera. Era un usuario de vi + Eclipse hasta hace unos cuatro años, que fue cuando pasé de ser un codificador aficionado a ser un profesional, y de forma más o menos simultánea al uso de emacs.

Lo que he encontrado es que emacs ha recompensado cada poco tiempo que he pasado aprendiendo con mayor capacidad. Todavía no puedo recomendarlo para escribir Java - Eclipse/NetBeans/IntelliJ son mucho mejores que cualquier editor de texto para eso - pero para la edición de archivos de configuración, codificación C, scripts emacs ofrece todo lo que pueda desear, y más. Las últimas versiones (cosas de última generación, por desgracia, aún inéditas) incluso admiten fuentes TrueType en gnome.

Será doloroso. El cambio de herramientas siempre lo es. Pero sí, deberías tratar de aprenderlo. No te arrepentirás.

29

He usado emacs durante más de veinte años. En la medida de lo posible, trato de usarlo para todas mis necesidades de tipeo, incluyendo, como mencionó Fu86, leer correos electrónicos, noticias, etc., así como notas, listas de tareas pendientes, escribir código, ejecutar compilaciones, etc. Como emacs es mucho más antiguo que el vim extensible (a diferencia del relativamente no extensible vi), tiene una colección mucho mayor de modos de extensión que cubren casi cualquier propósito que puedas imaginar. Dicho esto, es justo decir que el uso serio de emacs se puede considerar una opción de estilo de vida , ya que se necesita una cantidad considerable de esfuerzo y tiempo para ser fluido con la herramienta.

Mi respuesta real es que, en lo que los editores (y cualquier otra categoría de herramienta) van, usted debe encontrar uno que sea potente y flexible, y luego tomar el tiempo para convertirse en un usuario experto de esa herramienta. Su herramienta de elección puede ser vim o emacs, o tal vez alguna otra cosa, pero en cualquier caso, tómese el tiempo para aprenderlo bien. Personalmente, he elegido dominar emacs, y nunca me ha decepcionado cuando quería que solucionara alguna situación nueva para mí.

Nunca habiendo trabajado seriamente en Java, no puedo comentar por experiencia directa sobre qué tan bien reemplaza herramientas como eclipse e intellij. Tengo la edad suficiente para ser escéptico respecto de estas herramientas altamente integradas (incluso sin experiencia con ellas), y existen modos emacs que proporcionan algunas (aunque de ninguna manera todas, estoy seguro) de las características de estos editores.

+0

Me doy cuenta de que esta respuesta ya tiene casi una década, pero tengo curiosidad: ¿qué quiere decir con herramientas "altamente integradas"? Me doy cuenta de que está en lo mismo, pero tengo curiosidad por saber qué significa exactamente "integrado" y en qué medida. – Hashim

+2

@Hashim: Como usted señala, ha pasado un tiempo desde que escribí esta respuesta, pero muy aproximadamente, creo que por "altamente integrado" quise decir que los IDE modernos a menudo están estrechamente conectados a un único idioma o a un número relativamente pequeño de idiomas . Esta estrecha integración permite que ambos sean muy avanzados, pero también impide el uso de ese editor (IDE) como herramienta de edición de texto genérica. Al volver a leer mi respuesta original, aunque todavía estoy de acuerdo con los dos primeros párrafos, la última muestra un cierto grado de arrogancia, debo admitir, en la arrogancia. –

+0

Gracias por la respuesta después de tanto tiempo. Jaja, los beneficios de madurar con la edad. :-) – Hashim

14

1) ¿Debería aprender a usar Emacs? Probablemente. 2) ¿Debería intentar cambiar todo su desarrollo a Emacs? No. Discutiré cada una de estas preguntas en secuencia.

1) En esta pregunta, Emacs podría reemplazarse con Vim o cualquier otro editor multiplataforma. Deseo enfatizar el hecho de que es multiplataforma. Esto, para mí, es el principal beneficio de ser fluido con Emacs (o Vim). No importa en qué computadora esté, ya tendrá Emacs en ella, de modo que pueda acceder directamente a algún desarrollo o lo podré descargar fácilmente en unos minutos. En mis laboratorios de programación universitaria, en vez de tratar de usar los IDEs que tenía la computadora que tenía, acababa de abrir la terminal y usaba Emacs. Como ya dominaba un poco con Emacs (aunque de ninguna manera era un experto), pude hacer el trabajo bien sin tener que luchar con un entorno diferente.

Además, hay algunos idiomas para los que los IDEs decentes simplemente no existen. Por ejemplo, cada vez que trato de encontrar un IDE decente en OS X para Haskell, siempre termino recurriendo a Emacs. Si no dominaba Emacs, realmente no sé cómo escribiría el código Haskell.

Finalmente, usar un IDE para proyectos muy pequeños (y especialmente solo un archivo de programas) se siente torpe y contraproducente; es bueno tener un editor de texto simple para esas tareas (aunque estoy seguro de que algunos discutirían qué tan simple es realmente Emacs). Pero esto no es necesariamente un argumento para Emacs específicamente; en OS X, por ejemplo, TextMate es un excelente editor para estas tareas.

2) Emacs es potente y maravillosamente extensible, pero en mi experiencia no es un sustituto de un IDE. Al comenzar un nuevo proyecto en mi tiempo libre, una de las primeras cosas en las que pienso es si hay un IDE bueno para mi idioma y las tecnologías de mi elección. En OS X, por ejemplo, por lo general, primero veré si hay una buena manera de usar Xcode para mi proyecto. En Windows, veré si puedo usar Visual Studio. Si eso falla, miraré los IDE como Eclipse y NetBeans. Solo después de eso, considero hacer un desarrollo serio usando un editor de texto como Emacs.

Espero que esto ayude!

1

Aprender Emacs no es una mala idea: muchos IDEs (por ejemplo, Eclipse y NetBeans, la última vez que lo usé) tienen soporte para las mismas (o similares) vinculaciones de teclas. Aunque estas vinculaciones pueden ser confusas al principio, pueden, en mi opinión, aumentar en gran medida tu velocidad en el teclado, ya que tu mano nunca abandona realmente la posición de "inicio". En un IDE más maduro, esto es invaluable.

Por supuesto, habiendo llegado a así que acostumbrado a las ataduras de teclado de Emacs, ahora lucho cuando no están disponibles.

3

No creo que sea más productivo tampoco. Yo mismo uso Emacs para programar actualmente, pero la razón principal es que tengo que ingresar al sistema en el que estoy desarrollando. De lo contrario, probablemente usaría un IDE como IntelliJ o Eclipse.

1

Existe otra ventaja de aprender emacs. Emacs se ha integrado en los sistemas operativos Unix de una sorprendente cantidad de formas. Por ejemplo, puede usar comandos básicos de emacs en xterm. Diablos en OS X, puedes usar cosas básicas de emacs casi en todas partes. Además, también puede configurar muchos IDE (como Visual Studio o Eclipse) para usar comandos de tipo emacs. Así que diría que es bueno estar familiarizado con los conceptos básicos de emacs, incluso si no lo usa mucho.

Una cosa más a destacar: emacs es un regalo del cielo en las computadoras portátiles. Especialmente computadoras portátiles Apple. No necesita preocuparse de la ubicación tan horrible que tiene la tecla de inicio porque solo necesita C-a.

0

Si ahora lo usa y le gusta un IDE, y ya está familiarizado con vi/vim, entonces no le de a Emacs un segundo pensamiento. Emacs nunca reemplazará su IDE, y si pudiera, entonces vim lo haría bien. No importa las guerras santas de Emacs vs. vi ... ya sabes vim, y vi/vim ya estará instalado en cualquier sabor UNIX que encuentres.

0

Es una buena idea aprender usando Emacs o vi bien. Entonces podrá decidir por usted mismo qué es lo mejor para usted. Quizás termines usando ambos; IDEA por una cosa; el "editor" en otras situaciones.

Qué editor (emacs o vi) es más o menos una cuestión de gusto. Es muy útil contar con expertos locales que puedan responder "Oye, ¿cómo hago X usando el editor Y"? Si sus colegas juran por emacs, entonces yo diría que lo abandonen.

1

Personalmente, me gusta emacs. Está ampliamente disponible y tiene muchas funciones. A diferencia de VI/m, no tiene el concepto de modo insertar, por lo que se siente como un editor de texto estándar.

Además, Lisp.