[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

¡Esta es una revisión vieja del documento!


Translation in progress, have your favourite beverage while you wait :) (pedro.herrero)

Emacs

¿Qué es Emacs?

vi y sus clones son editores muy funcionales y poderosos. Sin embargo, a menudo no se consideran particularmente extensibles. vim es un sucesor exitoso y poderoso de vi que contradicen esta tendencia, siendo a la vez extremadamente extensible y ligero. Sin embargo, muchos usuarios prefieren un editor más “pesado” y extensible. Esta es la razón por la que muchas personas (incluido el autor de este capítulo) prefieren Emacs.

Emacs eleva la extensibilidad a la enésima potencia. Aparte de un núcleo de C, el resto de Emacs/ está escrito en un variante de Lisp, casi toda la cual es accesible, de modo que usted puede configurarlo o incluso extenderlo a voluntad (muchos buenos tutoriales de Emacs Lisp se pueden encontrar en Internet). La gente ha escrito todo tipo de extensiones en Emacs Lisp, desde el resaltado de sintaxis para un oscuro lenguaje, a un terminal incorporado. De hecho, hay incluso un modo de emulación vi dentro de Emacs (llamado viper), así que usted todavía puede obtener el modo de edición que viene con vi, mientras que dispone de toda la potencia del núcleo de Emacs.

Como con vi, hay muchas variantes de Emacs/ (llamadas “emacsen”). Sin embargo, el más usado (y el único en Slackware) es el Emacs de GNU. Cuando la gente hace referencia a “Emacs” directamente, casi siempre se refieren el Emacs de GNU.

A diferencia de vi, Emacs Opera más bien como un editor tradicional por defecto. Esto significa que la mayoría de los accesos directos del teclado se pueden realizar sin tener que cambiar de modo repetidamente. Puedes abrir un archivo y empezar a escribir sin tener que aprender lo que hacen los modos, u olvidarte de cuál de ellos estás usando actualmente.

Iniciando

Emacs se puede iniciar simplemente ejecutando el comando emacs en la terminal. Cuando se inicia por primera vez en una consola sin argumentos, se ve algo parecido a esto:

Starting Out

Si está en las ventanas X, Emacs puede iniciar una GUI en vez de ejecutarse en la consola. Si este es el caso y no desea una GUI, puede invocarlo con la opción '-nw'.

Una vez aquí, puede moverse usando las teclas de dirección. Los elementos subrayados son enlaces, y se pueden activar moviéndose encima y pulsanso Intro. La documentación mencionada es muy buena, y puede ayudarle a orientarse si tiene algún problema. Advierta también cómo se describen las secuencias de teclas como Ctrl+H, significando pulsar la tecla h mientras se aprieta la tecla CTRL. Ocurre lo mismo con M-`, que significa mantener pulsada la tecla Meta (normalmente Alt) y pulsar la tecla del acento reverso `. Cuando se dice por ejemplo Ctrl+X Ctrl+C, significa pulsar la tecla x mientras se mantiene apretada la tecla CTRL, y entonces pulsar la tecla c mientras también se mantiene apretada la tecla CTRL. Convenientemente, este es también uno de los comandos más importantes en Emacs: cerrarlo.

Alternativamente, si llama a emacs/ con un nombre de archivo como argumento, abrirá ese archivo, igual que vi. Al hacer esto, se le presentará el contenido del archivo en cuestión. Aquí, usted puede navegar por el documento con las teclas de flecha tradicionales y teclear información a voluntad sin ningún problema.

Digamos que hace algunas modificaciones y ahora quiere guardar el archivo. La siguiente secuencia de teclas lo hará: Ctrl+XCtrl+S. Si ha creado un nuevo archivo, se le pedirá que lo haga en lo que se denomina “minibuffer”, la línea en blanco debajo de la línea gris en la parte inferior de la pantalla. Escriba el nombre del archivo de su elección, luego presione Enter. Si no quiere guardar el archivo, puede presionar Ctrl+G, que abortará las operaciones pendientes de entrada de datos. Tenga en cuenta que la compleción de nombres por la tecla tab está normalmente disponible para las operaciones que utilizan el minibuffer.

Si desea abrir un archivo nuevo dentro de su sesión actual de Emacs, teclee Ctrl+XCtrl+F. Se le pedirá un nombre de archivo en el minibuffer. Emacs no se preocupa de si existe o no. Si no existe, se creará un nuevo buffer para él (el archivo se creará cuando se guarde con Ctrl+XCtrl+S), o se abrirá como se espera. Sin embargo, ¡el archivo antiguo estará abierto aún! puede volver a él usando Ctrl+XCtrl+B, entrando en el nombre del archivo (o, más técnicamente, el nombre del buffer), y entonces pulsando Intro.

Cómo Moverse

Como vi, Emacs también es más antiguo que las flechas. en el teclado. Además, como en vi, usar las teclas de flechas para navegar también es compatible. Mientras que las teclas de movimiento vi son más ergonómicas, las de Emacs son más bien “mnemotécnicas”. Sin embargo, aún así es muy posible operar con los atajos de teclado principales de /Emacs rápida y eficientemente. Aquí hay una tabla con los principales atajos de teclado para el movimiento:

El Movimiento del cursor de Emacs

ComandoResultado
Ctrl+FMueve el cursor un carácter a la derecha (forward)
Ctrl+BMueve el cursor un carácter a la izquierda (backward)
Ctrl+NMueve el cursor una línea abajo (next)
Ctrl+PMueve el cursor una línea arriba (previous)

Por supuesto, al igual que con vi es posible repetir estos comandos con un argumento numérico. Si teclea M-1 M-0 Ctrl+P, o Ctrl+U 10 Ctrl+P, el cursor se moverá diez líneas arriba. Si teclea M-5 Ctrl+F o Ctrl+U 5 Ctrl+F, el cursor se moverá cinco caracteres a la derecha.

Consiguiendo ayuda

Emacs contiene una gran cantidad de documentación, hasta el punto de que a menudo se le llama el editor “auto-documentado”. Esto se debe a que proporciona mecanismos para proporcionar a los usuarios documentación mientras están usándolo.

He aquí algunas funciones útiles que muestran documentación (todas empiezan con Ctrl+H):

Accediendo a la Documentación de Emacs

ComandoResultado
Ctrl+H f NOMBRE-FUNCIÓN IntroMuestra la documentación para la función NOMBRE-FUNCIÓN
Ctrl+H k Ctrl+X Ctrl+CMuestra la documentación para la función enlazada con las teclas Ctrl+X Ctrl+C
Ctrl+H tMuestra el tutorial de Emacs
Ctrl+H ?Muestra todas las funciones relacionadas con la ayuda

Ctrl+H t es especialmente útil si necesitas ayuda o práctica con Emacs.

Llamando Funciones

Como se ha indicado anteriormente, Emacs exporta un gran número de funciones para uso interactivo. Algunas de estas, como las que abren y guardan archivos, se asignan a las teclas. Otras (como las que se utilizan para trasladarse al principio y al final de las líneas) no lo son. Para llamarlas, hay que invocarlas. Digamos que desea llamar la función “end-of-line”. Haríamos esto:

M-x end-of-line Intro

Y el cursor se movería al final de la línea, como sugiere el nombre de la función.

La Chuleta de Emacs

While Emacs can be simple to use, its scope can easily be overwhelming. Below are some useful Emacs commands. Some aspects have been simplified, most notably regarding text selection. These concepts, and more, are described the Emacs manual, and various on-line tutorials. Decent summaries can also be gleaned from web searches.

Si bien Emacs puede ser sencillo de usar, su alcance puede ser fácilmente abrumador. A continuación se muestran algunos comandos útiles de Emacs. Algunos aspectos se han simplificado , sobre todo en lo que se refiere a la selección de texto. Estos conceptos, y más, se describen en el manual de Emacs, y varios manuales en línea. También se pueden obtener resúmenes decentes de la web búsquedas.

La Chuleta de Emacs

ComandoResultado
Ctrl+F Mueve el cursor un carácter a la derecha (forward)
Ctrl+B Mueve el cursor un carácter a la izquierda (backward)
Ctrl+N Mueve el cursor una línea abajo (next)
Ctrl+P Mueve el cursor una línea arriba (previous)
Ctrl+H f NOMBRE-FUNCIÓN Intro Muestra la documentación para la función NOMBRE-FUNCIÓN
Ctrl+H k Ctrl+X Ctrl+C Muestra la documentación para la función ligada a las teclas Ctrl+X Ctrl+C
Ctrl+H T Muestra el tutorial de Emacs
Ctrl+H ? Muestra las funciones relacionadas con al ayuda
M-` Accede a la Barra de Menú
Ctrl+G Cancela la operación actual. Esto es especialmente útil en el Minibuffer.
M-X NOMBRE-FUNCIÓN Intro Llama a la función interactiva NOMBRE-FUNCIÓN
M-1 M-0 Ctrl+N Mueve el cursor diez líneas abajo
Ctrl+U 10 Ctrl+N Mueve el cursor diez líneas abajo (lo mismo que arriba)
M-x beginning-of-line Mueve el cursor al comienzo de la actual línea
M-x end-of-line Mueve el cursor al final de la actual línea
M-> Mueve el cursor al final del buffer
M-< Mueve el cursor al inicio del buffer
Ctrl+K Borra el texto desde el cursor hasta el final de la línea y lo sitúa en el kill ring
Ctrl+Espacio Entra en el modo selección (use las taclas normales de movimiento). Pulse C-espacio de nuevo para salir.
Ctrl+W Estando en el modo selección, borra la región seleccionada, y almacena el resultado en el kill ring
M-W Estando en el modo selección, almacena la región seleccionada en el kill ring.
C-Y “Yank” (pega) el contenido del kill ring y lo sitúa en la localización del cursor
Ctrl+/ Deshace la acción anterior. A diferencia de la mayoría de los otros editores, esto incluye anteriores acciones de deshacer.
Insert Activa o desactiva la sobreescritura de caracteres
Ctrl+S asdf Intro Búsqueda incremental hacia delante de la cadena “asdf”. Repetir Ctrl+S tantas veces como sea necesario para buscar futuros elementos, o Ctrl+R (abajo) para buscar hacia atrás.
Ctrl+R asdf Intro Búsqueda incremental hacia atrás de la cadena “asdf”. Repetir Ctrl+R tantas veces como sea necesario para buscar futuros elementos, o Ctrl+S (arriba) para buscar hacia delante.
M-% antiguo Intro nuevo Intro Busca cada ejemplo de “antiguo” y le ofrece cambiarlo por lo “nuevo”. Puede forzar el cambio de todos los elementos tecleando ! en la entrada de la sustitución.
Ctrl+X Ctrl+C Sale de Emacs, ofreciendo guardar cada buffer antes de hacerlo
Ctrl+X Ctrl+S Guarda el buffer actual a su archivo
Ctrl+X Ctrl+W nuevo-archivo.txt Intro Guarda el buffer actual a un archivo “nuevo-archivo.txt”

Chapter Navigation

Previous Chapter: vi

Next Chapter: Networking

Sources

  • Originally written by Alan Hicks, Chris Lumens, David Cantrell, Logan Johnson

 es:slackbook:emacs ()