Emacs es probablemente el editor de texto más potente que existe. Puede hacer absolutamente de todo y es extensible ad-inifitum 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. Esto no es para decir que en este capítulo aprenderá a hacer todo eso, pero tendrá un buen comienzo abriendo Emacs, editando uno o más archivos, guardándolos y saliendo de Emacs.
Si, luego de leer esto, desea aprender más acerca de Emacs, puede echar un vistazo a este Tutorial de introducción a GNU Emacs (en inglés).
Emacs se invoca de la manera siguiente:
emacs [archivo1] [archivo2...]
Emacs abrirá
cada archivo ingresado como argumento en un buffer diferente. Se
se especifican más de dos archivos en la línea de comandos, la
ventana se dividirá automáticamente en dos y habrá una parte con
el último archivo especificado mientras que la otra parte mostrará
una lista de los buffers disponibles. Si arranca Emacs sin
especificar archivos en la línea de comandos se le presentará el
buffer *scratch*
. Si está en X, los
menús estarán disponibles y los podrá utilizar con el ratón, pero
si está en modo texto todavía puede acceder a los menús
presionando la tecla F10. En este capítulo nos
concentraremos en trabajar estrictamente con el teclado y sin
menús.
Es tiempo de poner
manos a la obra. Para nuestro ejemplo, comencemos abriendo dos
archivos, archivo1
y
archivo2
. Si estos archivos no existen, serán
creados tan pronto como Usted escriba algo en ellos:
$ emacs archivo1 archivo2
Al teclear ese comando obtendrá la ventana siguiente:
Como puede ver, se
crearon dos buffers. También está presente un tercero en la parte
inferior de la pantalla (donde se ve (New
file)
); este es el mini-buffer. No se puede acceder
directamente a este buffer. Emacs debe invitarlo durante
las entradas interactivas. Para cambiar el buffer corriente teclee
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-< o Ctrl-Inicio para ir al principio del buffer, y Alt-> o Ctrl-Fin para ir al final del mismo. Hay muchas otras combinaciones, incluso para cada una de las teclas de las flechas[12].
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 debería escribir el contenido del buffer. Puede usar el “completado” para hacer esto presionando la tecla Tab al igual que en bash.
Si lo desea, Usted puede mostrar un buffer solo en la pantalla. Hay dos formas de hacer esto:
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, o
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. Confirme su elección con la tecla
Intro.
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. Emacs le pedirá el nombre del archivo y Usted puede volver a utilizar el completado si lo encuentra más conveniente.
Suponga que estamos en la situación de la Figura 4.2, “Emacs antes de copiar el bloque de texto”.
Primero, necesitará
seleccionar el texto que desea copiar. En este
ejemplo, deseamos copiar toda la oración. El primer paso es poner
una marca al comienzo del área. Asumiendo que el cursor está en la
posición donde se encuentra en Figura 4.2, “Emacs antes de copiar el bloque de
texto”, la
secuencia de comandos sería Ctrl-Espacio (Ctrl y la
barra espaciadora). Emacs 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 este caso 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.
Finalmente vaya al buffer sobre el cual quiere copiar el texto, e ingrese Ctrl-Y. Esto le dará el resultado siguiente:
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.
Para deshacer, teclee Ctrl-X U o Ctrl-Mayús-- lo cual deshace la operación previa. Puede deshacer tantas operaciones como desee.
El atajo para salir de Emacs es Ctrl-X Ctrl-C. Si no ha guardado sus cambios, Emacs le preguntará si desea o no guardar los buffers.
[12] 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 en el teclado. Esto es incluso más cierto en Vi.