Emacs o Vim como editores para programar

emacs vim

Sí, ya sé que hay bastantes comparaciones entre Emacs y Vim por toda la Red pero quería añadir la mia y enfocarme en el uso de ambos editores como herramientas de programación.

Algunas publicaciones mencionan que existe una guerra santa entre los usuarios de Emacs y Vim pero no creo que guerra sea la palabra correcta y me niego a comentar sobre lo de santa. Guerra es algo que hace la gente estúpida y nosotros, los buenos programadores, no somos estúpidos.

Emacs y Vim son editores muy poderosos para usuarios avanzados (y tú eres uno de ellos, ¿correcto?), son herramientas muy útiles que nos permiten escribir y modificar código muy rápido. Tanto Emacs como Vim pueden ser usados como procesadores de texto, yo escribo prácticamente todo en Vim, desde los borradores de mis mensajes de correo y los artículos en mis sitios hasta mi próximo libro. Emacs va un poco más allá y ofrece un entorno en el que se puede hacer mucho más que editar texto.

Escoger herramientas de programación es algo muy subjetivo; cambia de persona a persona. Algunos se acostumbran a ciertas aplicaciones y deciden quedarse con ellas aún si nuevas y mejores opciones aparecen. Yo intento ser más abierto, si existen alternativas que podrían lograr que trabaje mejor y más rápido suelo invertir algo de tiempo aprendiendo, y algo de tiempo podría ser desde unas pocas horas hasta algunas semanas.

He escrito esta serie de tres artículos para ayudarte a tomar la mejor decisión sobre qué editor, Vim o Emacs, debes usar para escribir tu código. Es una decisión muy importante, en especial si pasas más de ocho horas al día sumergido en código. Intentaré concentrarme en productividad para programadores.

En esta primera parte hablaré sobre Emacs, la segunda entrega será sobre Vim y concluiré la serie con algunas ideas sobre qué editor creo que deberías usar para tus labores de programación. Todo esto, por supuesto, basado en mi propia experiencia.

Si ya usas Vim o Emacs, no pretendo que cambies de editor pero darle un vistazo al otro lado y comparar puede ser útil, e incluso podrías encontrar algo de inspiración. Si no trabajas con ninguno de ellos aún y te consideras un hábil programador este puede ser el momento para empezar.

Emacs

La primera versión de Emacs fue escrita por Richard Stallman mientras trabajaba en el MIT en 1976. Yo he usado la versión más popular, GNU Emacs, y esa es a la que este artículo se refiere.

Emacs es mucho más que un editor de texto, es un entorno donde no solo puedes modificar código sino también compilarlo, administrar archivos, acceder a la consola y conectar a tu servidor de bases de datos, por nombrar solo algunas opciones. Me gusta mucho esta parte de Emacs, tener todo en un solo lugar ayuda mucho pues no se pierde tanto tiempo cambiando entre aplicaciones. Pude correr consultas en psql mientras ejecutaba pruebas desde iPython y editaba plantillas de Django, todo dentro de Emacs.

Cada archivo que abres o tarea que ejecutas en Emacs usa un espacio de la ventana principal llamado buffer. Todo lo que está en un buffer de Emacs puede ser editado, muy útil si quieres copiar complicadas consultas de SQL desde psql a ese nuevo módulo en Drupal.

La mayoría de comandos en Emacs usan combinaciones que involucran las teclas Control y Meta (Alt en la mayoría de teclados modernos). Varias de estas combinaciones resultan obvias luego de algunas horas usándolas (como CTRL+x CTRL+s para grabar o CTRL+g para cancelar) pero otras pueden retorcer tus dedos de manera absurda, como las teclas para desplazarse por el texto. ¿Porqué diablos los programadores de Emacs escogieron CTRL+n, CTRL+p, CTRL+f y CTRL+b para acciones tan comunes y básicas? Incluso si Emacs me permite asignar teclas diferentes a cada operación espero que funcione tan bien como sea posible con la configuración predeterminada.

Buscar y reemplazar texto es rápido y sencillo en Emacs, incluyendo la opción para expresiones regulares, pero no me gusta la forma como se repiten estas operaciones, algo que se torna necesario a menudo cuando notas que llamaste a la función incorrecta o usaste otro nombre de variable en todo tu código.

La configuración de Emacs es muy flexible, puedes cambiar por completo la forma como trabaja si tienes el tiempo, la paciencia y el café. El archivo de configuración suele estar en ~/.emacs y está escrito en Lisp, sí, el latín de los lenguajes de programación usualmente conocido por sus aplicaciones en inteligencia artificial. Pero no hay que temerle a Lisp, puedes aprender mucho, al menos lo suficiente para configurar Emacs, en la introducción a la programación con Emacs Lisp. Lisp es un lenguaje muy poderoso y divertido, algo diferente a lo que estamos acostumbrados muchos programadores del siglo 21, pero vale la pena conocerlo.

Emacs incluye documentación muy bien escrita y puedes empezar a aprender con el tutorial con solo presionar la combinación CTRL+h t. Las primeras páginas son vitales para aprender a navegar correctamente los archivos de ayuda.

Ahora, si quieres transformarte en un experto en Emacs, Learning GNU Emacs de O'Reilly, ya en su tercera edición, me parece la mejor opción.

Me gusta mucho Emacs, es un editor muy bien pensado y no tengo duda de que es lo suficientemente poderoso para la mayoría de tus necesidades como programador; sin embargo, sus a veces complejas combinaciones de teclas y el querer ser tantas cosas a la vez lo transforman en una herramienta que puede resultar pesada por momentos. Emacs corre muy bien para uso local en toda computadora moderna pero lo sentí un poco lento sobre algunas conexiones ssh que uso a diario.

Estoy seguro que varios lectores tendrán diferentes ideas sobre Emacs y me gustaría que las compartan. ¿Es Emacs tu editor favorito? ¿Cuánto tiempo lo has usado y cuál es la función que prefieres?

Ahora, para algo completamente diferente, démosle un vistazo a Vim en la siguiente parte.

Join the conversation

hasta ahora mi voto va por jedit

tampoco me limito a el, pero hasta ahora es lo que más me ha gustado. tomando en cuenta que intenté usar emacs y vim, y fue una tortuosa experiencia, jedit me dió eso que no me dieron las otras alternativas: facilidad de uso. eso si, tengo acceso a modificar muchas cosas de el, y de paso lograr cosas que simplemente no se pueden hacer en entornos no-visuales (ej: comparar dos archivos de texto, se puede en los otros, pero en entornos visuales se logra de mucho mejor manera).

escribí algo al respecto aquí

saludos

excelente articulo

excelente articulo !!....escrito por los que saben ..!!

voto por emacs.. Apenas lo

voto por emacs.. Apenas lo uso para editar texto y no uso "atajos" de momento..

Keep your comments relevant, written in good English and don't spam. Let's create useful and valuable discussions. Markdown is welcome.

Add your comment