traductor espaņol a ingles

 [ Skip to content | Translations of this page | document source ]


Introduccion a GNU Emacs


Introduccion

Acerca de este documento

Tomando en cuenta los grandes alcances de GNU Emacs, se aclara que esta es solamente una muy breve introduccion a esta versatil herramienta, a fin de que el usuario se inicie en su uso en modalidad de editor de texto.

Que es GNU Emacs?

La pagina del manual de Emacs lo define originalmente como: "un editor extensible, personalizable, auto-documental y de tiempo real", pero como muchos sabran Emacs es mucho mas que un simple editor de texto, muchos consideran a Emacs incluso como un lenguaje de programacion, y quiza no sea tan descabellada esta connotacion, puesto que Emacs es un interprete del lenguaje Emacs lisp, que es un dialecto del lenguaje de programacion lisp, un poderoso lenguaje de programacion que fue concebido originalmente para trabajar con IA (inteligencia artificial).

Que significa Emacs?, el nombre de Emacs proviene de Editor de MACroS, aunque muchas son las bromas que se hacen entorno a Emacs, una de ellas dice que Emacs proviene de Emacs Makes A Computer Slow (N. del T. Emacs alenta la computadora) esto debido a su robustes, otra curiosa definicion que he leido por ahi es que proviene de Escape Meta Alt Control Shift por la enorme cantidad de combinaciones de teclas que utiliza.

Como bien lo dice su definicion, Emacs es extremadamente extensible y polifacetico, ya que se puede desde editar un simple fichero de texto hasta navegar por internet, entrar a nuestros canales favoritos en IRC, leer y enviar correo electronico, grupos de noticias, reproducir musica e inclusive hecharse una partia de ajedrez o un juego de tetris y una aparentemente interminable lista de cosas que podemos hacer con el, en este escrito solo se abarcara una introduccion a su uso como editor de texto.

Tambien se califica a Emacs como personalizable, y esto es otra gran verdad, esto se puede hacer desde su fichero de configuracion ubicado en nuestro directorio personal con el nombre de .emacs o emacs.el, el cual contendra una serie de rutinas en Emacs lisp que Emacs ejecutara cuando se inicie.

Quiza Emacs no se encuentre instalado en nuestra maquina (sobretodo cuando se hacen instalaciones minimas) pero esto no sera impedimento para utilizarlo, puede ir a la pagina de descarga y obtener la ultima version estable disponible (en este momento la 21.4.1 desde la que escribo este texto) o si utiliza gestores de paquetes como apt-get en Debian GNU/Linux es seguro que Emacs esta entre los paquetes disponibles de los repositorios.

Siempre que usted lea manuales de Emacs se encontrara con instrucciones del tipo C-x M-c, quiza en un principio usted no sepa a que se refiere esto, es algo a lo que tendra que acostumbrarse, pero es sencillo la "C" es equivalente a la tecla Control (Ctrl) y la "M" proviene de Meta y es equivalente a la tecla Alterno (Alt) o Escape (Esc), por lo que para el ejemplo se tendria que oprimir Ctrl seguido de la letra "x" y despues Alt seguido de la letra "c", Meta tambien se puede conseguir presionando y soltando la tecla Escape (Esc), y presionando enseguida la letra del comando, para el ejemplo seria Esc suelto la tecla y oprimo la letra "c", sencillo no?. Quiza tambien se tope con la expresion RET que es equivalente a la tecla Enter o Return.

Para empezar a trabajar con Emacs debemos de escribir simplemente la palabra emacs en nuestra terminal y se abrira el programa o tambien podemos pasarle un archivo como parametro del tipo emacs prueba.txt o inclusive pasarle mas de un archivo como parametro, por ejemplo: emacs prueba.txt prueba2.txt prueba3.txt

Emacs abrira los archivos y los almacenara en 3 buffers diferentes, ya veremos mas adelante el concepto de buffer y como trabajar con mas de un archivo a la vez.

Conociendo Emacs

Empezaremos por conocer como se llaman las diferentes areas de trabajo en Emacs.

Buffer principal

El area principal de trabajo, que es en donde podremos editar texto, se llama buffer principal, esto porque en Emacs nunca trabajamos directamente con el archivo original, si no con una "copia" llamada buffer, por eso, lo que vemos siempre, es un buffer o una copia del original. Cuando guardamos nuestro trabajo, Emacs guarda el trabajo que mantenia en el buffer.

La linea de modo

La linea de modo esta exactamente debajo del buffer principal, y es parecida a esto:

--uu:---  prueba.txt        (Text)--L1--All-----------------------------------

Lo cual se interpreta de la siguiente manera:

  • El "uu" indica el tipo de codificacion que esta utilizando nuestro archivo, en mi caso yo tengo configurado Emacs para que sea UTF-8.
  • Los tres guiones que siguen indican que no hemos hecho ningun cambio a nuestro archivo, si hacemos un cambio, escribir una letra por ejemplo, o guardamos el archivo los guiones son reemplazados por dos asteriscos.
  • prueba.txt es el nombre del archivo con el que estamos trabajando.
  • (Text) es el modo en el que estamos trabajando, un modo es como una optimizacion para la edicion de diferentes tipos de texto, existen por ejemplo, ademas del modo texto, el modo lisp, el modo C, el modo HTML, y un largo etcetera. El modo por defecto se llama Fundamental, pero como en este caso, nuestro archivo tiene extencion .txt cargo el modo texto.
  • L1 significa que el cursor esta posicionado en la linea uno.
  • All tambien nos indica la posicion del cursor en el texto pero de otra manera, por ejemplo, en este caso es All, porque nuestro documento cabe en una sola pantalla (ya que esta vacio), es decir, lo que estamos viendo es todo el documento, pero, cuando tengamos un archivo que ocupe mas de una pantalla del buffer, esto cambiara y nos mostrara por ejemplo: si en la pantalla en la que estamos se encuentra el final del texto se mostrara Bot, por el contrario, si en la pantalla en la que estamos esta el principio del documento se mostrara Top, y si no estamos exactamente en la primera y/o la ultima pantalla nos mostrara el porcentaje (de 0 a 100) del documento que esta arriba de la pantalla.

El area eco

El area eco se encuentra exactamente debajo de la linea de modo, sirve para mostrarle mensajes al usuario (por ejemplo cuando se guarda el archivo, cuando vamos a abrir alguno, modo de trabajo, etc) y tambien alli podremos ir visualizanso los comandos y combinaciones de teclas que vayamos tipeando.

Opciones de inicio

Ahora mencionare las opciones mas comunes para cuando estamos iniciandonos con Emacs. En la actualidad existen dos versiones comunes de Emacs, GNU Emacs y XEmacs, por ejemplo, si nosotros tenemos ambiente grafico pero queremos trabajar con Emacs desde una terminal, podemos pasarle como parametro la opcion: -nw con esto Emacs se ejecutaria dentro de nuestra terminal.

Si no queremos que nuestro Emacs cargue las directivas que tenemos especificadas en nuestro ~/.emacs deberemos pasarle como parametro la opcion -q

si lo que queremos es que nuestro Emacs lea el archivo de configuracion de otro usuario seria de la siguiente manera emacs -u usuario

Hay una opcion que utilizo mucho, sirve para entrar en Emacs lisp en modo debugger, se utiliza cuando hay algun error de sintaxis en nuestro ~/.emacs, la opcion es

--debug-init

Tambien se pueden utilizar las opciones combinadas, como por ejemplo: emacs -nw --debug-init -u exalin con lo cual estaria iniciando Emacs desde mi terminal en modo debugger utilizando el archivo .emacs del usuario exalin.

Editando archivos con Emacs

Bien, ahora que ya conocemos con que opciones podemos iniciar nuestro Emacs ya estamos listos para empezar a trabajar con archivos, para lo cual ejecutaremos Emacs en nuestra terminal con emacs -nw acto seguido buscaremos algun archivo en nuestro directorio home para trabajar, esto lo haremos con la combinacion C-x C-f con lo que nos aparecera en el area eco: Find file: ~/ en donde seleccionaremos el archivo que vamos a editar por si deseamos abrir uno existente, o podemos tambien escribir alli el nombre del nuevo archivo, para guardar los cambios realizados en un archivo se utiliza la combinacion C-x C-s con lo cual Emacs notificara que guardo los cambios mostrando en pantalla algo como: Wrote /home/exal/prueba.txt lo cual me indica que se guardo el archivo ubicado en /home/exal/prueba.txt, despues de guardar para salir completamente del editor utilizaremos C-x C-c, con esto ya hemos hecho un muy breve trabajo con un archivo.

Adicionalmente Emacs cuenta con la funcion de auto-guardado, esto, cuando vamos haciendo cambios en un archivo y no los vamos guardando, Emacs los guarda en un archivo con el simbolo # al inicio y al final del nombre de dicho archivo, por ejemplo, el nombre del archivo auto guardado de prueba.txt seria #prueba.txt#, cabe mencionar que cuando realmente guardamos el cambio en el archivo, este archivo auto guardado es borrado, ahora, que si nos ha pasado algun accidente (cerramos sin querer, se nos apago la PC, ect.) podemos recuperar nuestro trabajo con el archivo auto guardado (mismo que como no guardamos los cambios no se borro), para lo que abriremos nuestro archivo original (no el autoguardado), al abrir este nos aparecera un mensaje en el area eco avisandonos que existe una version auto guardada de ese archivo, para recuperarla haremos M-x recover-file RET esto nos pedira una confirmacion.

Combinaciones de teclas utiles

Aqui pongo una lista de combinaciones de teclas que nos seran muy utiles a la hora de editar nuestros documentos.

Abrir y guardar

Para abrir un documento existente utilizaremos C-x C-f con lo que podremos navegar por nuestra jerarquia de directorios para encontrar el archivo, aqui podremos utilizar la tecla TAB para el autocompletado. Como ya vimos, para guardar el buffer actual se utiliza la combinacion C-x C-s, si no se han hecho cambios en el archivo nos saldra el mensaje: (No changes need to be saved). Si tenemos mas de un buffer abierto podemos utilizar la opcion C-x s la cual nos preguntara que buffer es el que queremos guardar.

Seleccionar, cortar, copiar y pegar

Para copiar algun texto primero debe de seleccionarse lo cual se hace con: C-<espacio> Emacs indica que se empezara con la seleccion con la frase Mark set y deberemos ir seleccionando la porcion de texto que querramos, aclaracion, no veremos sombrearse dicha seleccion (a menos que hayamos configurado Emacs paea eso), cuando hayamos terminado de definir la porcion de texto a seleccionar deberemos cortar con C-w o copiar con M-w para posteriormente pegar, con C-y

Moverse a traves del texto

C-f - avanza un caracter
C-b - retrocede un caracter
M-f - avanza una palabra
M-b - retrocede una palabra
C-a - va al principio de la linea
C-e - va al final de la linea
C-v - avanza una pantalla
M-v - baja una pantalla
M-x - goto-line ir a una linea especifica

Buscar

C-s - busca hacia abajo
C-r - busca hacia arriba
C-s C-s - repite la busqueda
M-C-s - busca utilizando como patron una expresion regular
M-x replace-string - reemplazo de texto

Borrar

M-d - borra una palabra
M-del - borra palabra anterior
C-k - borra toda la linea
M-k - borra todo el parrafo
C-g - cancela la ejecucion de un comando
C-x u - deshace el ultimo cambio

Trabajo con ventanas

C-x 2 - divide la ventana en dos (horizontalmente)
C-x 3 - divide la ventana en dos (verticalmente)
C-x o - para cambiar de ventana
C-x k - cierra la ventana actual


Copyright (C) 2007,2008 Exal de Jesus Garcia Carrillo <exal@gnu.org>, se permite la copia, redistribucion y modificacion de este documento siempre y cuando se conserve esta nota.



[ EN ] [ ES ] [PT]
Copyright (C) 2006,2007,2008 Exal de Jesus Garcia Carrillo
Last update: fevereiro 5, 2008

Valid XHTML 1.0 Strict Valid CSS!