Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Tutoriales / Guía de Linux Para el Usuario - Editando archivos con Emacs (I)

Guía de Linux Para el Usuario - Editando archivos con Emacs (I)

 ***** (1 opiniones)
GNU Free Documentation License Tutorial de Larry Greenfield - 16 de Febrero de 2006
Temas Relacionados: Linux
13. Editando archivos con Emacs (I)
¿Qué es Emacs?

Para obtener algo en una computadora, necesita una forma de introducir texto en los archivos, y una manera de cambiar el texto que ya está en los archivos. Un editor es un programa para este tipo de tareas. emacs es uno de los editores más populares, en parte porque es muy fácil para un principiante hacer trabajos con él. (El editor de Unix clásico, el vi, se trata en el Apéndice A).

Para aprender emacs, tiene que encontrar un archivo de texto (letras, números, etc.) cópielo a su directorio de usuario 1 (no queremos modificar el archivo original, si éste contiene información importante), y luego llame a Emacs con el archivo:

/home/larry$ emacs LEAME

(Por supuesto, si decide copiar /etc/rc, /etc/inittab, o cualquier otro archivo, sustituya ese nombre de archivo por LEAME. Por ejemplo, si "cp /etc/rc ~/rc" , entonces "emacs rc").

"Llamar" a Emacs puede tener efectos diferentes dependiendo en dónde lo haga. Desde una consola que muestra sólo caracteres de texto Emacs se apoderará de toda la consola. Si lo llama desde X, Emacs abrirá su propia ventana. Asumiré que lo está haciendo desde una consola de texto, pero todo sucede de la misma manera en la versión de X, lógicamente simplemente sustituya la palabra "ventana" en los lugares en donde lea "pantalla". ¡Además, recuerde que debe mover el puntero del ratón a la ventana de Emacs para escribir!

Su pantalla (o ventana, si está usando X) debería parecerse a la Figura 8.1. La mayor parte de la pantalla contiene su documento de texto, pero las dos últimas líneas son especialmente interesantes si está tratando de aprender Emacs. La penúltima línea (la que tiene una cadena larga de guiones) se denomina línea de modo ("mode line" en inglés).

En mi línea de modo, ve "Top". Debería decir "All", y puede haber otras pequeñas diferencias.

(A muchas personas les aparece la hora actual en la línea de modo). La línea inmediatamente inferior a la línea de modo se denomina minibuffer, o a veces el área de eco. Emacs usa el minibuffer para enviar mensajes al usuario, y ocasionalmente cuando es necesario, para leer información que introduce el usuario. De hecho, ahora mismo Emacs le está diciendo "Para obtener información acerca del Proyecto GNU y sus objetivos, teclee C-h C-p." (sólo que en inglés). Ignórelo por ahora; no vamos a usar mucho el minibuffer por un tiempo.

Antes de realizar cualquier cambio en el texto del archivo, necesita aprender cómo moverse. El cursor deberá estar al principio del archivo, en la esquina superior izquierda de la pantalla.

Para avanzar, presione |_C-f_| (reteniendo la tecla |_Control_| mientras presiona "f", para "forward" (avanzar). Avanzará un carácter cada vez, y si retiene ambas teclas, la repetición automática de teclas de su sistema deberá surtir efecto en medio segundo aproximadamente. Notará como, cuando llega al fin de la línea, el cursor automáticamente se mueve a la próxima línea. |_C-b_| (para "backward" (retroceder) tiene el comportamiento opuesto. Y, ya que estamos en ello, |_C-n_| y ||_C-p_|| le llevan a las líneas siguiente y anterior, respectivamente. 2

Usar las teclas de control es comúnmente la manera más rápida de moverse cuando está editando.

El objetivo de Emacs es mantener sus manos sobre las teclas alfa-numéricas del teclado, donde se realiza la mayoría del trabajo. Sin embargo, si quiere, las teclas de movimiento deberán funcionar también.

De hecho, cuando usa X, debería ser capaz de ubicar el puntero del ratón y hacer "click" con el botón izquierdo para mover el cursor donde quiera. Sin embargo, esto es muy lento, ¡tiene que mover la mano hasta el ratón! La mayoría de la gente que usa Emacs usa principalmente el teclado para moverse por el texto.

Use ||_C-p_|| y |_C-b_| para ir a la esquina superior izquierda. Ahora mantenga |_C-b_| un poco más.

Debería oír un sonido molesto de campana, y ver el mensaje "Beginning of buffer" (Principio del buffer) que aparece en el minibuffer. En este punto se puede preguntar, "¿Pero qué es un buffer?". Cuando Emacs trabaja sobre un archivo, no trabaja realmente sobre el archivo en sí. En vez de eso, copia los contenidos del archivo en un área de trabajo especial de Emacs llamada buffer, donde puede modificar el contenido. Cuando ha acabado de trabajar, debe decirle a Emacs que guarde los buffers, en otras palabras, que escriba el contenido de los buffers en el archivo correspondiente.

Hasta que haga esto, el archivo permanece sin cambiar, y el contenido de los buffers existe únicamente dentro de Emacs.

Con esto en mente, prepárese a insertar su primer carácter en el buffer. Hasta ahora, todo lo que hemos hecho ha sido "no destructivo", este es un gran momento. Puede escoger cualquier carácter que quiera, pero si quiere hacer esto con estilo, yo sugiero usar una bonita y sólida, "X" mayúscula.

Mientras lo teclea, eche un vistazo al principio de la línea de modo al pie de la pantalla. Cuando cambia los buffer de modo que sus contenidos no sean iguales que los del archivo sobre el disco, Emacs muestra dos asteriscos a principios de la línea de modo, para hacerle saber que el buffer ha sido modificado:

--- Emacs: algun_archivo.txt (Fundamental)--Top

Estos dos asteriscos se muestran tan pronto como modifica el buffer, y permanecen visibles hasta que guarde el buffer. Puede guardar los buffer muchas veces durante una sesión de edición, el comando para hacerlo es simplemente |_C-x_C-s_| (presione |_Control_| y pulse "x" y "s" mientras la mantiene apretada, ¡probablemente ya se lo imaginó!). Es deliberadamente fácil de escribir, porque lo mejor es salvar sus buffers al principio y frecuentemente.

Ahora voy a enumerar más comandos, además de los que ya ha aprendido, y los puede practicar del modo que prefiera. Yo sugiero familiarizarse con ellos antes de proseguir:

C-f Avanza un carácter.

C-b Retrocede un carácter.

C-n Va a la próxima línea.

C-p Va a la línea anterior.

C-a Va al comienzo de la línea.

C-e Va al final de la línea.

C-v Va a la próxima página/pantalla de texto.

C-l Redibuja la pantalla, con la línea actual en el centro.

C-d Borra este carácter (practica este).

C-k Borra el texto desde aquí hasta el fin de línea.

C-x C-s Salva el buffer en su archivo correspondiente.

|_Retroceso_| Borra el carácter anterior (el último que escribiste).



Comenzar rápidamente en X

Si está interesado en editar unos archivos rápidamente, un usuario de X no tiene que ir mucho más allá de los menús en la parte superior de la pantalla. Estos menús no están disponibles en el modo texto.

Cuando ejecute por primera vez Emacs, habrá cuatro menús en la parte superior de la pantalla: Buffers, File, Edit, y Help. Para usar un menú, simplemente mueva el puntero del ratón sobre el nombre (como File, haga click y retenga el botón izquierdo). Entonces, mueva el puntero a la acción que quiere y libere el botón del ratón. Si cambia de idea, retire el puntero del ratón del menú y libere el botón.

El menú Buffers enumera los diferentes archivos que han sido editados en esta instancia de Emacs.

El menú Files muestra un grupo de comandos para cargar y guardar archivos, muchos de ellos se describirán más adelante. El menú Edit muestra algunos comandos para editar un buffer, y el menú Help debería dar la documentación en línea.

Notará que las equivalencias del teclado se enumeran junto a las opciones del menú. Puesto que, a largo plazo, éstas serán más rápidas, podría quererlas aprender. También, para bien o para mal, la mayoría de la funcionalidad de Emacs está únicamente disponible mediante el teclado, así que puede que le interese leer el resto de este capítulo.



Editando varios archivos al mismo tiempo

Emacs puede trabajar sobre más de un de archivo a la vez. De hecho, el único límite sobre cuantos buffers puede contener Emacs es la cantidad real de memoria disponible en la máquina. El comando para traer un nuevo archivo a un buffer de Emacs es |_C-x_C-f_|. Cuando lo teclee, se le pedirá un nombre de archivo en el minibuffer:

Find file (Buscar archivo):~/

La sintaxis, aquí, es la misma que la usada para especificar archivos desde la línea de comandos; las barras representan subdirectorios, ~ es su directorio de usuario. También consigue terminación automática de nombre de archivo, significa que si ha escrito suficiente de un nombre de archivo en la línea de comandos para identificar el archivo singularmente, puede simplemente presionar |_Tab_| para completarlo (o para ver las terminaciones posibles, si hay más de una). ||_Espacio_|| también tiene un papel en la terminación automática de nombres de ficheros en el minibuffer, parecido a |_Tab_|, pero dejaré que experimente para que averigüe cómo difieren las dos. Una vez que tiene el nombre completo en el minibuffer, presione |_Intro_|, y Emacs creará un buffer mostrando el archivo. En Emacs, este proceso es conocido como encontrar un archivo. Siga adelante y busque ahora algún otro archivo de texto sin importancia y tráigalo a Emacs (haga esto desde nuestro buffer original algun_archivo.txt). Ahora tiene un nuevo buffer; Supondré que se llama otro_archivo.txt, ya que no puedo ver su línea de modo.

Su buffer original parece haber desaparecido (probablemente) se pregunta dónde fue. Está todavía dentro de Emacs, y puede volver a él con |_C-x_b_|. Cuando teclee esto, verá que en el minibuffer le pide el nombre un buffer al que cambiar, y nombra uno por defecto. El buffer por defecto lo consigue sólo con presionar |_Intro_| en la línea de comandos, sin escribir un nombre de buffer. El buffer por defecto al que cambiar, es siempre el más recientemente usado, para que cuando esté haciendo mucho trabajo entre dos buffers, |_C-x_b_| tenga por defecto el "otro" buffer (salvándole de tener que escribir el nombre del buffer). Incluso si el buffer por defecto es el que quiere, debería probar a teclear su nombre de todos modos.

Note que consigue el mismo tipo de terminación automática que obtuvo al buscar un archivo: al pulsar |_Tab_| completa todo lo que puede del nombre de un buffer y así sucesivamente. Cada vez que se le pida algo en el minibuffer, es una buena idea ver si Emacs hace terminación automática.

Aprovechando la terminación automática cuando se le ofrezca, ahorrará teclear mucho. Emacs comúnmente hace la terminación automática cuando elige un elemento de alguna lista predefinida.

Todo lo que ha aprendido para moverse y editar texto en el primer buffer se aplica a los nuevos. Siga adelante y cambie algún texto en el nuevo buffer, pero no lo guarde (es decir, no teclee |_C-x_C-s_|).

Déjeme asumir que quiere desechar los cambios sin guardarlos en el archivo. El comando para esto es C-x k, que "mata" (kill) el buffer. Tecléelo ahora. Primero se le preguntará qué buffer matar, pero por defecto es el buffer actual, y casi siempre es el que se quiere matar, simplemente presione |_Intro_|. Entonces le preguntará si realmente quiere matar el buffer, Emacs siempre controla antes de matar un buffer que tiene cambios sin salvar. Simplemente escriba "yes" (sí) y presione |_Intro_|, si quiere matarlo.

Siga adelante y practique cargar archivos, modificarlos, guardarlos, y matar sus buffers. Por supuesto, cerciórese de no modificar ningún archivo de sistema importante de una forma que cause problemas 3, pero trate de tener por lo menos cinco buffers abiertos al mismo tiempo, para que se pueda dar el gusto de moverse entre ellos.



Terminando una sesión de edición

Cuando haya hecho su trabajo en Emacs, asegúrese de que se guarden todos los buffers que deben guardarse, y salga de Emacs con |_C-x_C-c_|.

A veces |_C-x_C-c_| le hará una pregunta o dos en el minibuffer antes de dejarle salir, no se alarme, simplemente conteste en las maneras obvias. Si piensa que podría volver a Emacs luego, no use |_C-x_C-c_|; use |_C-z_|, que suspenderá Emacs. Puede volver luego con el comando "fg" del shell.

Esto es más eficiente que detener a Emacs y comenzar varias veces, especialmente si tiene que editar los mismos archivos nuevamente.

Bajo X, presionar |_C-z_| reducirá a icono la ventana. Mire la sección sobre minimizar en el Capitulo 5. Esto le da dos formas de minimizar Emacs, la manera normal que ofrece el gestor de ventanas, y |_C-z_|. Recuerde, cuando minimice, un simple "fg" no traerá la ventana anterior, tendrá que usar el gestor de ventanas.



1 Por ejemplo, "cp /usr/src/linux/LEAME ./LEAME"

2 En caso de que aún no lo haya notado, muchos de los comandos de movimiento de emacs consisten en combinar |_Control_| con una única letra mnemotécnica.

3 De cualquier manera, si no es el usuario "root" de la máquina, no debería ser capaz de dañar el sistema, pero tenga cuidado igualmente.
Autor y licencia de 'Guía de Linux Para el Usuario - Editando archivos con Emacs (I)'
Larry Greenfield Extraído de: http://es.tldp.org/Manuales-LuCAS/GLUP/glup_0.6-1.1-html-1.1/ GNU Free Documentation License
Licencia GNU Free Documentation License: http://www.es.gnu.org/licencias/fdles.html
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Guía de Linux Para el Usuario - Editando archivos con Emacs (I)'

Todo lo que Ud. necesita saber para comenzar a utilizar Linux, el clon gratuito de... Más »
Con este articulo serás capaz de instalar el eMule en tu ordenador y comenzar a... Más »
En este documento se presenta la información acerca de la instalación, configuración, ejecución y mantenimiento... Más »
Este documento describe el soporte de sonido para Linux. Enumera el hardware de sonido soportado,... Más »
Josep Palau i Fabre, poeta barcelonés nacido en 1917, es uno de los máximos representantes... Más »
¿Estás seguro de que deseas eliminar este capítulo?