viernes, julio 01, 2005

emacs y vi

Durante mi estadia en la Facultad de Ingeniería, mi amigo Cerealito siempre trato de convencerme de utilizar el editor emacs, pero siempre me causo desinterés.

Durante mi etapa Linuxera preferí utilizar el vi, incluso para los proyectos que nos dejaba nuestra adorada profesora Laura Sandoval, que incluso aveces se hacía tedioso tener que identar el código debido a que vi no tiene esa facilidad, uno debe de cuidar los tabuladores y hasta cierto punto los controla bien, solo hay algunas sorpresas cuando se cambia de una servidor de Linux a otro, debido a la configuración del ambiente.

Desde que me cambie a Mac OS X, el sistema no proporciona un buen editor, existe TextEdit.app, que esta entre un Notepad debido a la característica de editar textos simple sin formato y un Wordpad por la caracteríca de crear y editar archivos RTF, pero no proporciona todas las caracteristicas deseables en un editor de código. Existen otras alternativas como son BBEdit, un editor comercial bastante decente con soporte de edición para muchos lenguajes, es casí como un EditPlus. Claro que también tenemos el editor proporcionado por XCode que esta bastante decente pero sigue careciendo de algunos comodities.

Afortunadamente tambien tenemos la Terminal.app, que permite ejecutar muchos de los comandos habituales de UNIX y siempre se encuentra el confiable vi para solucionar algunos problemas. Recientemente con mi nuevo aprendizaje sobre la programación con Cocoa y especificamente con Objective-C, se proporcionaban algunos ejemplos donde se mencionaba que algunos desarrolladores preferian hacer uso del editor emacs, así que me decidi hacer el ejemplo en tan mentado editor.

Así que lanze una terminal, en cuanto me respondio el shell ejecute emacs y apareció el editor ante mis ojos, es la primera vez que tomaba el editor en serio, la bienvenida era simple y al grano, la primera ayuda es mucho mejor que algunos programas de la suite de oficina de Micro$oft, con la ventaja de no tener asistontos. Presione "C-x t" para traer el tutorial y comenzar a hacer practica en el editor, antes de ponerme a escribir cualquier línea de código. La redacción es fluida y la ayuda te va construyendo un conocimiento solido, además de que me parece bastante entretenido, en pocos minutos ya podia "matar lineas" *(cortar) y "aventarlas" (pegar), simplemente asombroso, además con la facilidad de pasarle parámetros a los comandos puedes hacer esos movimientos repetiticos sin cansarte, como avanzar 10 carácteres con solo hacer un par de secuencias, formidable.

No termine el tutorial y ya tenia la posibilidad de trabajar en el código de ejemplo, así que genere un nuevo archivo "emacs Tiny.m" y me puse a escribirlo, lo hice como en cualquier otro editor pero siguiendo los modos de emacs, que me resultaron bastante obvios. Por lapsos guardaba mi avance C-x C-s y continuaba escribiendo, termine mi codigo y cerre el editor C-x C-c. Desde el momento que lo abrí note que el editor cargo una serie de instrucciones relacionadas con la sintaxis de Obj-C e incluso en la barra de menú aparecia ObjC, también me gusto mucho el hecho de que automáticamente el editor hace la identación, con tan solo hacer un solo tab, eso acelera la programación, no hay que preocuparse por la sintaxis, también verifica donde abre y cierran los parentesis.

Se que aun me faltan muchas cosas que ver en emacs y aún no termino el tutorial, solo avance como un 40%, y se que se pueden hacer muchas cosas más, definitivamente este encuentro ha hecho que adopte una buena postura hacía este editor y sobre todo que lo adoptaré como una herramienta muy poderosa de trabajo, ahora comprendo el asombro que tenia Cerealito y la insistencia de su uso.

Como conclusión vi seguira siendo aquel editor que uso para los archivos de configuración, y lectura de archivos y edición simple, pero cuando se trate de codificación emacs será una de mis primeras opciones.

1 comentario:

Samuel Flores Sandoval dijo...

A WEBO!
4 años después me haces caso cabron!
en fin, mas vale tarde que nunca...

I love emacs...

ojalá que no lo dejes...