Cómo usar el editor Emacs en Linux

Introducción

Emacs es uno de los editores de texto más antiguos y versátiles. La versión GNU Emacs se escribió originalmente en 1984 y es reconocida por sus potentes y completas funciones de edición. Se puede personalizar y ampliar con diferentes modos , lo que permite su uso como entorno de desarrollo integrado (IDE) para lenguajes de programación como Java, C y Python.

Para quienes han usado tanto Vi como el editor de texto nano, de fácil manejo, Emacs se presenta como una opción intermedia. Sus ventajas y características son similares a las de Vi, mientras que sus menús, archivos de ayuda y teclas de comando son comparables a los de nano.

En este artículo, aprenderá cómo instalar Emacs en un servidor Ubuntu 22.04 y usarlo para la edición básica de texto.

Prerrequisitos

Para seguir este tutorial, necesitará un servidor Ubuntu 22.04 configurado con un usuario no root con sudoprivilegios y el firewall habilitado. Puede configurarlo siguiendo nuestra guía “Configuración inicial del servidor con Ubuntu 22.04” .

Paso 1 – Instalación de Emacs

Comience por verificar si su sistema ya tiene Emacs instalado:

emacs

Si el programa está instalado, el editor se iniciará con el mensaje de bienvenida predeterminado. De lo contrario, verá este resultado:

OutputCommand 'emacs' not found, but can be installed with:
sudo apt  install e3           # version 1:2.82+dfsg-2
sudo apt  install emacs-gtk    # version 1:27.1+1-3ubuntu5
sudo apt  install emacs-lucid  # version 1:27.1+1-3ubuntu5
sudo apt  install emacs-nox    # version 1:27.1+1-3ubuntu5
sudo apt  install jove         # version 4.17.3.6-2
See 'snap info emacs' for additional versions.

Para instalar Emacs, utilice el siguiente comando:

sudo apt install emacs

Después de instalar Emacs en su máquina, estará listo para pasar al siguiente paso.

Paso 2 – Uso de la interfaz

Inicie Emacs ejecutando el comando emacsen su terminal:

emacs

Emacs se inicia con un búfer de edición vacío y espera a que empieces a escribir. Cuando se inicia Emacs sin un archivo especificado, el programa muestra un mensaje de bienvenida:

Mensaje de bienvenida de Emacs

Para crear un nuevo archivo, mueva el cursor al enlace “Visitar nuevo archivo” pulsando la TABtecla y luego ENTER. También puede pulsar CTRL+X, y luego CTRL+Fpara crear un nuevo archivo. Aparecerá un mensaje al final de su terminal solicitando un nombre de archivo:

Aparece un mensaje en la parte inferior de la ventana de Emacs solicitando un nombre de archivo.

Introduce un nombre de archivo para empezar a editar texto. En el siguiente ejemplo, myfile.txtse utiliza [nombre]. Puedes nombrar el archivo como quieras. Una vez que lo hayas escrito, pulsa ENTERpara continuar.

Un archivo vacío estará listo para la entrada de texto:

Después de ingresar un nombre de archivo, aparece un archivo vacío.

En la parte superior de la pantalla hay un menú. Después, hay un amplio espacio de edición. Este se denomina búfer principal , donde se escribe el texto o se visualiza el contenido de un archivo.

Cuando Emacs edita un archivo existente en el disco, primero se carga una copia del documento en memoria y luego se muestra en la ventana principal de edición. Esta área de la memoria se denomina búfer . A medida que se trabaja con el documento, todos los cambios realizados en el espacio de edición se aplican al búfer, mientras que el archivo original en el disco permanece sin cambios. En ocasiones, Emacs guarda automáticamente en segundo plano, pero solo al guardar manualmente el documento se escriben los cambios en el disco. Lo mismo ocurre con los archivos nuevos. Todos los cambios se realizan en el búfer hasta que se guardan. El espacio de edición principal en Emacs es la vista del búfer.

Después del búfer principal, se muestra una barra de texto resaltada cerca de la parte inferior de la pantalla. Esta se denomina barra de estado o línea de modo . El texto que se muestra aquí depende del modo en el que se encuentre Emacs. Entre otras cosas, la barra de estado incluye:

  • Nombre del archivo actual
  • Ubicación actual del cursor
  • Modo de edición actual
  • El estado del archivo (– para un archivo sin modificar, ** para un archivo con cambios no guardados y %% para archivos de solo lectura)

Finalmente, hay una sola línea de espacio después de la barra de estado, donde termina la pantalla. En este ejemplo, se muestra el texto “(Nuevo archivo)”. Esta área se llama minibúfer . Emacs es una herramienta basada en comandos y el minibúfer es su principal punto de interacción. Aquí es donde Emacs solicita la entrada de comandos y muestra la salida.

La versión de texto de Emacs trata las ventanas de forma diferente a la versión con interfaz gráfica de usuario (GUI). A diferencia de las aplicaciones basadas en GUI, las ventanas de texto de Emacs no se abren, ya que no pueden hacerlo físicamente en una sesión de terminal o consola. Cuando Emacs necesita abrir una nueva ventana, su búfer principal se divide en dos partes, como si tuviera dos marcos en un navegador. La mitad superior muestra el búfer principal y la inferior muestra el nuevo contenido. Un ejemplo de cómo Emacs abre una nueva ventana es al acceder a sus archivos de ayuda o tutoriales.

Acceder a los menús

Al iniciar Emacs, suele ocupar toda la pantalla. Se puede acceder a la mayoría de sus funciones desde una barra de menú ubicada en la parte superior de la pantalla.

A diferencia de los programas basados ​​en GUI, los menús de texto no se pueden desplegar con un clic del ratón. De hecho, no se pueden resaltar ni desplazarse por los menús con una tecla de acceso directo.

Para acceder a los menús, pulse la F10tecla . Esto abre otra ventana debajo del búfer principal y muestra una lista de teclas para acceder a los elementos del menú. El minibúfer le solicitará que introduzca la tecla necesaria. Al pulsarla, el contenido de la nueva ventana cambiará, mostrando el siguiente nivel de opciones.

Para salir de los menús, sin importar lo avanzado que esté, presione la ESCtecla tres veces. Esto generalmente cierra la ventana del menú y lo regresa al búfer principal.

Aquí se muestran algunas de las opciones disponibles en el Toolsmenú:

  • Calendario
  • Calculadora simple
  • Calculadora programable
  • Buscando en un directorio
  • Cifrado y descifrado de documentos
  • Enviar y leer correos electrónicos
  • Buscar archivos usando grep
  • Corrección ortográfica
  • Ejecución de comandos de shell y compilación de código
  • Control de versiones
  • Comparar y fusionar archivos
  • Juegos

Acceso a ayuda y tutoriales

Emacs cuenta con un amplio sistema de ayuda y tutoriales. Para acceder a él, puede usar el menú pulsando F10y pulsar las teclas de flecha RIGHTo para seleccionar , o pulsar y luego la tecla correspondiente. Por ejemplo, puede introducir una de las siguientes teclas después de pulsar para consultar preguntas frecuentes, tutoriales, noticias y otros temas:LEFTHelpCTRL+HCTRL+H

  • tpara ingresar a un Tutorial de Emacs
  • CTRL+Fpara una sección de preguntas frecuentes
  • CTRL+PPara conocer errores y problemas conocidos
  • CTRL+Rpara leer el Manual de Emacs
  • CTRL+Epara encontrar paquetes adicionales

Paso 3 – Uso de las teclas de comando

Ahora que ya conoce la interfaz de usuario, puede empezar a familiarizarse con las teclas de comando de Emacs. Al abrir un archivo, puede escribir y ejecutar comandos simultáneamente.

Las funciones de comando suelen implicar dos o tres teclas. La más común es la CTRLtecla [ ], seguida de la tecla ALT[ ] o [ ESC]. CTRLSe abrevia como “C” en Emacs. Notas como [ C-x C-c], significan que se presionan las CTRL+Xteclas juntas y luego [ ] CTRL+C. De igual forma, C-h t[ ] significa presionar CTRL+Hjuntas, soltar ambas teclas y presionar [ ] t.

ALTEn Emacs, las teclas y ESCse denominan teclas metaALT . En los equipos Apple, en lugar de , se usa la OPTIONtecla . Otros teclados usan una EDITtecla. Al igual que la CTRLtecla , Emacs utiliza funciones multitecla con la tecla meta. Por ejemplo, una notación como M-xsignifica que se presionan ALTo OPTIONy xjuntas. De igual forma, se podría usar ESC+Xpara ejecutar el mismo comando.

La ENTERtecla se muestra como RETen Emacs, que es la abreviatura de “retorno”. ESCSuele mostrarse como E.

La ESCtecla se puede usar para salir de un comando o mensaje. Por ejemplo, se puede presionar ESCvarias veces para salir de un menú específico. Otra forma de cancelar una operación es presionar CTRL+G.

Guardar y salir

Una vez que haya realizado cambios en su documento o escrito texto, puede guardarlo presionando CTRL+X, seguido de CTRL+S. El minibúfer mostrará el siguiente mensaje:

OutputWrote /home/sammy/myfile.txt

Puede salir de Emacs presionando CTRL+Xy luego CTRL+C.

Si no guardó manualmente el archivo antes de salir, recibirá este mensaje:

OutputSave file /home/sammy/myfile.txt? (y, n, !, ., q, C-r, C-f, d or C-h)

Presione Ypara guardar el archivo.

Si presionas Nno, recibirás este mensaje:

OutputModified buffers exist; exit anyway? (yes or no)

Entrar yespara salir sin guardar.

Navegar por un documento extenso o un tema de ayuda puede ser tedioso. Afortunadamente, en Emacs existen varias maneras de navegar por un archivo.

A continuación se muestra una lista de algunas funciones de navegación comunes:

Para realizar esta funciónUtilice estas teclas
Pasando a la siguiente líneaCTRL+N(N para Siguiente)
Moviéndose a la línea anteriorCTRL+P(P de Anterior)
Avanzando un personajeCTRL+F(F de Adelante)
Mover un carácter hacia atrásCTRL+B(B de atrás hacia adelante)
Moviendo una palabra hacia adelanteMETA+F(F de Adelante)
Mover una palabra hacia atrásMETA+B(B de atrás hacia adelante)
Moverse al inicio de una líneaCTRL+A
Moviéndose al final de una líneaCTRL+E(E por Fin)
Moverse al comienzo de una oraciónMETA+A
Moverse hasta el final de una oraciónMETA+E(E por Fin)
Moviéndose una página hacia abajoCTRL+V(o AvPág)
Subir una páginaMETA+V(o Re Pág)
Moviéndose al principio del archivoMETA+<(Alt + Mayús + “<”)
Moviéndose al final del archivoMETA+>(Alt + Mayús + “>)

Recuerda que esto METAsignifica que puedes utilizar cualquiera de las siguientes teclas: ALT, ESC, OPTION, o EDIT.

Paso 4 – Funciones de edición

Si necesita realizar tareas más especializadas comunes en los procesadores de texto populares, como seleccionar o resaltar una sección específica de un archivo de texto, puede hacerlo en Emacs.

Marcar regiones de texto

Para marcar una región de texto siga estos pasos:

  • Mueva el cursor a la posición donde desea que comience la selección. Puede usar cualquiera de los métodos descritos anteriormente para mover el cursor.
  • Presione CTRL+SPACEBARo CTRL+@para marcar el texto y comenzar a resaltarlo. El minibúfer mostrará un mensaje de estado Mark Activated.
  • Mueva el cursor a la posición donde desea que termine la región. Utilice cualquiera de las combinaciones de teclas descritas anteriormente.
  • El texto se resaltará hasta el punto donde se encuentre ahora el cursor.
  • Presione CTRL-SPACEBARo CTRL+@dos veces para desmarcar el texto resaltado. El minibúfer mostrará un mensaje de estado de Mark Deactivated.

Alternativamente, como en un procesador de textos, puede mantener presionada la SHIFTtecla y mover el cursor con las teclas de flecha UPo DOWNde su teclado para hacer su selección.

Si desea seleccionar el párrafo donde se encuentra el cursor, presione META+H. Si presiona META+hrepetidamente, se seleccionarán los siguientes párrafos del archivo de texto.

Si desea seleccionar todo el contenido del búfer principal (es decir, “seleccionar todo”), presione CTRL+Xy luego h.

Cortar, copiar y pegar texto

De manera similar a un procesador de textos, puedes copiar, cortar y pegar texto:

  • Para copiar el texto que has seleccionado, presiona META+W.
  • Para cortar la selección de texto, presione CTRL-W.
  • Para pegar una selección de texto, presione CTRL-Y.

Eliminar texto

La eliminación de texto mediante las teclas Backspacey Deletefunciona tal como lo esperarías.

Para borrar una palabra completa rápidamente, mueva el cursor al principio de una palabra y pulse META+D. Para borrar varias palabras, mantenga pulsada la METAtecla y pulse D. Las palabras se borrarán una a una.

Para borrar una línea completa, coloque el cursor donde desee y presione CTRL+K. Esto borra el texto hasta el final de la línea.

Para borrar una oración, pulse META+K. Tenga en cuenta que Emacs borrará una línea completa o más si no hay dos espacios después del punto. Los dos espacios después del punto son la forma en que Emacs determina si una oración se ha dividido en varias líneas.

Deshacer y rehacer

Puedes deshacer la última operación pulsando CTRL+X. uUna combinación de teclas alternativa es CTRL+_(La tecla que se pulsa aquí sería CTRL, SHIFT, y -para escribir un guion bajo).

Para rehacer la última acción deshacer, presione CTRL+G, seguido de CTRL+_.

Búsqueda y reemplazo de texto

En Emacs hay dos direcciones de búsqueda: hacia adelante y hacia atrás. En la búsqueda hacia adelante, la palabra que especifique se buscará hacia adelante desde la posición actual del cursor. En la búsqueda hacia atrás, es al revés.

  • Pulsa CTRL+Spara buscar hacia adelante. Luego, introduce el texto que buscas en el mensaje del minibúfer.
  • Presione CTRL+Rpara buscar hacia atrás.

Inmediatamente después de ingresar su término de búsqueda, Emacs lo buscará y resaltará cualquier coincidencia que encuentre en el búfer principal.

Por ejemplo, buscar la palabra “gato” en un archivo de texto revelará cada ocurrencia en el búfer principal como un texto resaltado:

La palabra "gato" se resalta después de ingresar el término de búsqueda "gato" en una búsqueda hacia adelante en el mini-buffer.

Para reemplazar texto, siga estos pasos:

  • Presione META+%. El minibúfer le solicitará el texto que se buscará con Query replace:.
  • Ingrese el texto que desea reemplazar y presione ENTER.
  • El mini buffer mostrará .Query replace your_search_term with:
  • Ingrese la palabra o frase que desea reemplazarsu_término_de_búsquedacon y presione ENTER.
  • Cada coincidencia se resaltará y se te pedirá que realices un reemplazo. El minibúfer te preguntará .Query replacing your_search_word with your_replacement_word: (C-h for help)
  • Presione ypara reemplazar la coincidencia actual encontrada.
  • Presione npara saltar al siguiente partido.
  • Presione qpara salir sin ningún reemplazo.
  • Pulsa !para realizar un reemplazo global sin indicaciones. El minibúfer mostrará este mensaje: .replaced number occurrences

Agregar alineación izquierda, derecha y centrada

Para centrar una línea, mueva el cursor al comienzo de esa línea y presione META+O, luego META+S.

Para justificar una región de texto seleccionada haga lo siguiente:

  • Resalte el texto que desea justificar.
  • Presione META+X. El mini búfer esperará una respuesta.
  • Ingrese set-justifiction-y presione la TABtecla.
  • Se le darán las siguientes opciones de finalización: set-justification-center, set-justification-left, set-justification-right, set-justification-noney set-justification-full.
  • Complete el comando de justificación, seleccionando set-justification-righto uno de su elección, luego presione ENTER.
  • El texto seleccionado se justificará en la dirección que usted elija.

A continuación se muestra un ejemplo del texto asignado a las diferentes configuraciones de justificación:

Ejemplo de selección de texto en Emacs. La primera sección muestra que el texto está seleccionado. La segunda sección muestra el texto justificado a la derecha. La siguiente sección está justificada a la izquierda. La última sección muestra una justificación centrada del texto.

Conversión de mayúsculas y minúsculas

Puedes cambiar el formato de mayúsculas y minúsculas con diferentes comandos. Aquí tienes una lista de algunas teclas de comando:

Para realizar esta funciónUtilice estas teclas
Poner en mayúscula una palabra después del cursorMETA+C(C para capitalizar)
Convertir una palabra a minúsculasMETA+L(L de minúscula)
Convertir una palabra a mayúsculasMETA+U(U para mayúsculas)
Convertir un párrafo a mayúsculasSeleccionar bloque, luegoCTRL+X CTRL+U
Convertir un párrafo a minúsculasSeleccionar bloque, luegoCTRL+X CTRL+L

Si está convirtiendo un párrafo completo o más a mayúsculas o minúsculas, aparecerá una nueva ventana y un mensaje:

WindowYou have typed C-x C-l, invoking disabled command downcase-region. It is disabled because new users often find it confusing. Here’s the first part of its description: Convert the region to lowercaselower case. In programs, it wants two arguments.These arguments specify the starting and ending character numbers of the region to operate on.  When used as a command, the text between point and the mark is operated on. Do you want to use this command anyway? You can now type 'y' to try it and enable it (no questions if you use it again). 'n' to cancel--don’t try the command, and it remains disabled. 'SPC' to try the command just this once, but leave it disabled. '!' to try it, and enable all disabled commands for this session only.
Un mensaje dentro de su instancia de Emacs después de presionar las teclas y para convertir un párrafo a minúsculas.

Proceda presionando las teclas mencionadas.

Administrar Windows

Administrar ventanas dentro de Emacs puede ayudarle a trabajar de manera más eficiente con sus archivos.

Por ejemplo, desde el búfer principal, cambia al tutorial de Emacs presionando y CTRL+hluego t. La ventana principal del búfer ahora es el tutorial de Emacs. Si quieres volver al myfile.txtbúfer, presiona CTRL+Xy luego b. Este es el comando “switch buffer” . Emacs te pedirá el nombre del búfer al que quieres cambiar. Empieza a escribir el nombre del búfer myfile.txty presiona ENTER. Esto te llevará del tutorial de Emacs al archivo que especificaste.

Paso 5 – Introducción de modos

Entrar en un modo mayor

Una de las razones por las que Emacs ha sido tan ampliamente adoptado en la comunidad UNIX es su capacidad para asumir diferentes modos. Un modo puede mejorar la funcionalidad de Emacs.

Según el modo seleccionado, Emacs puede usarse como procesador de texto para escribir archivos de texto o puede adaptarse para tareas avanzadas como escribir código Python, C o Java. Por ejemplo, puede cambiar el modo de Emacs para que funcione con sistemas de control de versiones, ejecute comandos de shell o lea páginas de manual.

Existen dos tipos de modos de Emacs. Uno se denomina modo principal . En este modo, Emacs puede utilizarse como entorno de desarrollo integrado (IDE) para lenguajes de programación o scripting. En este modo, el programa ofrece funciones especializadas como resaltado de sintaxis con color, sangría y formato, opciones de menú específicas del lenguaje o interfaz automática con depuradores y compiladores.

Para demostrarlo, puedes escribir una aplicación “Hola mundo” en Python usando Emacs.

Dentro de tu terminal y en tu directorio raíz, ingresa los siguientes comandos:

cd ~
emacs hello.py

Emacs reconoce la extensión del archivo y se iniciará en modo Python. En el búfer principal, introduzca el siguiente código Python:

print "hello world!\n"

Las palabras clave ahora se indican con resaltado de sintaxis en color. Observe también que la línea de estado sobre el minibúfer revela el modo en el que se encuentra. El menú principal también tiene una entrada específica para Python:

Dentro del búfer principal de Emacs, el código Python editado tiene resaltado de sintaxis en color y muestra que está en modo Python en la línea de estado. El menú principal incluye la opción "Python".

Guarde el buffer con CTRL+X CTRL+S.

Para cambiar el modo principal desde Emacs, pulse META+X. El minibúfer esperará su respuesta. A continuación, podrá cambiar de modo. Estos son algunos ejemplos de modos principales:

  • modo c
  • modo Python
  • modo java
  • modo html
  • modo perl
  • modo shell-script
  • modo texto

Entrar en un modo menor

En comparación con los modos principales, los modos secundarios ofrecen funciones más específicas. Estas funciones pueden estar vinculadas a un modo principal específico o tener un efecto en todo el sistema, independientemente del modo principal. Además, a diferencia de los modos principales, puede haber varios modos secundarios activos simultáneamente. Los modos secundarios son como interruptores: algunos están activados por defecto, otros no. Si un modo secundario ya está activado, al llamarlo se desactivará. Si está desactivado, se volverá a activar.

Un ejemplo de un modo menor es la opción para configurar la justificación utilizada en los ejemplos anteriores.

Otro ejemplo de modo menor es el auto-fill-mode. Para acceder a este modo en el editor de Emacs, pulse la META+Xtecla y luego Intro auto-fill-mode.

Este modo permite que una línea de texto se divida y avance a la siguiente cuando su longitud supera los 70 caracteres. Recuerda que al invocar un modo menor, funciona de forma muy similar a un interruptor. Al invocar el mismo comando de nuevo, se desactivará el salto de línea.

A continuación se muestran algunos ejemplos más de modos menores:

  • auto-save-mode:Esto alterna la propiedad de guardado automático que guarda periódicamente el contenido del búfer principal detrás de escena.
  • line-number-mode:Esto alterna la visualización del número de línea actual en la barra de estado.
  • linum-mode: Alterna la visualización de números de línea a lo largo del borde izquierdo de la ventana.
  • column-number-mode:Muestra la posición actual del cursor en la barra de estado.
  • overwrite-modeEs como presionar una INStecla en el teclado. Al activarlo, sobrescribirá el texto a la derecha del cursor mientras escribes.
  • menu-bar-mode:Esto puede activar o desactivar el menú principal.

Conclusión

En este tutorial, aprendió sobre los distintos comandos, funciones de edición y modos en Emacs.

Para comprender mejor el editor de Emacs, la página web de GNU Emacs ofrece abundante información, incluyendo enlaces a otros recursos como la Wiki de Emacs . También puede consultar el manual de GNU Emacs .

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post