Emacs

Emacs es probablemente el editor de texto más potente que existe. Puede hacer absolutamente de todo y es extensible infinitamente gracias a su lenguaje de programación incorporado, basado en lisp. Con Emacs, puede navegar por la web, leer su correo, tomar parte en foros de discusión, hacer el café, y así sucesivamente. Pero lo que Usted podrá hacer al final de esta sección estará limitado a abrir Emacs, editar uno o más archivos, guardarlos y salir de Emacs. Lo cual no es poco para empezar.

Presentación breve

Invocar a Emacs es relativamente simple:

    emacs [archivo] [archivo ...]
   

Emacs abrirá cada archivo ingresado como argumento en un buffer hasta el número máximo de dos buffers visibles a la vez, y le presentará el buffer *scratch* si no especifica archivo alguno. Si está en X, también tendrá disponible un menú, pero en este capítulo trabajaremos con el teclado.

Comenzando

Es tiempo de poner manos a la obra. A modo de ejemplo, abramos dos archivos, archivo1 y archivo2. Si estos dos archivos no existen, serán creados tan pronto como Usted escriba algo en ellos:

    $ emacs archivo1 archivo2
   

Obtendrá la ventana que se muestra en la Figura 4.1. Emacs, editar dos archivos a la vez.

Figura 4.1. Emacs, editar dos archivos a la vez

Emacs, editar dos archivos a la vez

Como puede ver, se crearon dos buffers: uno por archivo. También está presente un tercero en la parte inferior de la pantalla (donde se ve (New file)); este es el mini-buffer. Usted no puede ir, por las suyas, a este buffer; Emacs debe invitarlo durante las entradas interactivas. Para cambiar el buffer corriente ingrese Ctrl+x o. Puede ingresar texto como en un editor “normal”, y borrar caracteres con la tecla Supr o la tecla Retroceso.

Para desplazarse por ahí, puede usar las teclas de las flechas, así como también estas otras combinaciones de teclas: Ctrl+a para ir al principio de la línea, Alt+< para ir al principio del buffer y Alt+> para ir al final del mismo. Hay muchas otras combinaciones, incluso para cada una de las teclas de las flechas[11].

Tan pronto como quiera guardar los cambios hechos en un archivo, ingrese Ctrl+x Ctrl+s, o si desea grabar el contenido del buffer en otro archivo, ingrese Ctrl+x Ctrl+w y Emacs le pedirá el nombre del archivo en el cual se escribirá el contenido del buffer. Puede usar el “completado” para hacer esto.

Manipulación de los buffers

Si lo desea, Usted puede mostrar un buffer solo en la pantalla. Hay dos formas de hacer esto:

  • Usted está en el buffer que quiere ocultar: ingrese Ctrl+x 0;

  • Usted está en el buffer que quiere conservar en la pantalla: ingrese Ctrl+x 1.

Por lo tanto, hay dos maneras de restaurar el buffer que desea en la pantalla:

  • ingrese Ctrl+x b e introduzca el nombre del buffer que quiere,

  • ingrese Ctrl+x Ctrl+b, entonces se abrirá un buffer nuevo, denominado *Buffer List*; se puede desplazar por este buffer usando la secuencia Ctrl+x o, luego seleccione el buffer que desea y presione la tecla Intro, o si no ingrese el nombre del buffer en el mini-buffer. El buffer *Buffer List* vuelve a segundo plano una vez que Usted ha hecho su elección.

Si ha finalizado con un archivo y desea deshacerse del buffer asociado, ingrese Ctrl+x k. Entonces Emacs le preguntará qué buffer debe cerrar. Predeterminadamente, es el nombre del buffer en el cual Usted se encuentra en ese momento; si desea deshacerse de un buffer que no sea el propuesto, ingrese su nombre directamente o bien presione Tab: Emacs abrirá entonces otro buffer más denominado *Completions* dando la lista de elecciones posibles. La tecla Intro valida la elección.

También puede restaurar dos buffers visibles en la pantalla al mismo tiempo; para hacer esto ingrese Ctrl+x 2. Predeterminadamente, el nuevo buffer creado será una copia del buffer corriente (lo que le permite, por ejemplo, editar un archivo grande en varios lugares “a la vez”), y simplemente procederá como se describió anteriormente para moverse entre los buffers.

Puede abrir otros archivos en cualquier momento, usando Ctrl+x Ctrl+f. Entonces Emacs le pedirá el nombre del archivo y Usted dispondrá otra vez del completado.

Copiar, cortar, pegar, buscar

Suponga que estamos en la situación de la Figura 4.2. Emacs antes de copiar el bloque de texto.

Figura 4.2. Emacs antes de copiar el bloque de texto

Emacs antes de copiar el bloque de texto

Primero, necesitará seleccionar el texto que desea copiar. En X, lo puede hacer usando el ratón, e incluso se resaltará el área seleccionada. Pero aquí estamos en modo texto :-) En este caso, queremos copiar toda la oración. Primero, necesitará poner una marca para indicar el comienzo del área. Asumiendo que el cursor está en la posición donde se encuentra en la figura anterior, primero ingrese Ctrl+ESPACIO (Control + barra espaciadora); Emacs entonces mostrará el mensaje Mark set en el mini-buffer. Luego muévase al principio de la línea con Ctrl+a: el área seleccionada para copiar o cortar es toda el área que se encuentra entre la marca y la posición corriente del cursor, entonces en el caso presente será toda la línea. Luego, ingrese Alt+w (para copiar) o Ctrl+w (para cortar) Si Usted copia, Emacs volverá brevemente a la posición de la marca, para que Usted pueda ver el área seleccionada.

Luego vaya al buffer sobre el cual quiere copiar el texto, e ingrese Ctrl+y, para obtener lo que se muestra en la Figura 4.3. Emacs, después de la copia del bloque de texto.

Figura 4.3. Emacs, después de la copia del bloque de texto

Emacs, después de la copia del bloque de texto

De hecho, lo que Usted acaba de hacer es copiar texto al kill ring (anillo de los muertos) de Emacs: este kill ring contiene todas las regiones copiadas o cortadas desde que se inició Emacs. Cualquier región copiada o cortada se pone al comienzo del kill ring. La secuencia Ctrl+y simplemente “pega” la región que está en el tope. Si desea tener acceso a otras regiones, presione Ctrl+y ,y luego Alt+y hasta que obtiene el texto deseado.

Para buscar texto, vaya al buffer deseado e ingrese Ctrl+s. Entonces, Emacs le pedirá la cadena a buscar. Para comenzar una búsqueda nueva con la misma cadena, todavía en el buffer corriente, ingrese Ctrl+s de nuevo. Cuando Emacs llega al final del buffer y no encuentra más ocurrencias, puede teclear Ctrl+s de nuevo para volver a iniciar la búsqueda desde el principio del buffer. Al presionar la tecla Intro se finaliza la búsqueda.

Para buscar y reemplazar, ingrese Alt+%. Emacs le pedirá la cadena a buscar, con qué reemplazarla, y le pide confirmación para cada ocurrencia que encuentra.

Una última cosa muy útil: Ctrl+x u deshace la operación previa. Usted puede deshacer tantas operaciones como quiera.

Salir de Emacs

El atajo para esto es Ctrl+x Ctrl+c. Entonces, Emacs le pedirá si Usted quiere grabar las modificaciones hechas a los buffers si todavía no los ha grabado.



[11] Emacs ha sido diseñado para funcionar en una gran variedad de máquinas, algunas de las cuales incluso no tienen teclas de las flechas. Esto es incluso más cierto en Vi.