GNU/Linux >> Tutoriales Linux >  >> Linux

Introducción a Emacs:explicación de los comandos básicos

Hay muchos editores basados ​​en texto en Linux. Algunos vienen con la mayoría de las distribuciones, otros tienes que instalarlos después del hecho. Los editores basados ​​en texto son una herramienta importante para cualquier usuario o administrador de Linux. Los servidores a menudo no tienen una GUI, y aunque Linux en sí mismo es muy estable, he visto fallas en la GUI muchas veces. Cuando pierde su GUI, es imprescindible tener un conjunto de herramientas basadas en texto con las que se sienta cómodo.

Antes de comenzar con los conceptos básicos de la operación de GNU Emacs, primero quiero aclarar algo. Probablemente esté al tanto de la guerra "Emacs Vs Vim" que es responsable de muchas discusiones acaloradas. Me encanta Vim, lo usé durante más de una década. Pero esto es lo que pasa con Emacs, no es solo un editor de texto.

En esencia, Emacs podría describirse simplemente como un marco de búferes y marcos. Los marcos son la forma en que divide sus ventanas, puede tener tantos marcos como desee. En modo GUI, puede tener varias ventanas de Emacs, cada una de las cuales contiene uno o más marcos. Luego tienes los búferes, los búferes se llenan con contenidos que se alimentan desde algún lugar. Cuando alimenta un búfer con un archivo, Emacs desempeña el papel de un editor de texto. Incluso puede usar Emacs como su administrador de ventanas.

Familiarícese con el diseño de Emacs

Primero, centrémonos en lo básico. Aquí aprenderá los conceptos básicos para operar Emacs.

Emacs se puede instalar directamente a través de la administración de paquetes de su distribución. Después de la instalación, al iniciar Emacs se iniciará el modo GUI. Este modo puede ser útil cuando comienza, ya que proporciona un acceso a la barra de menú. Es importante recordar que cada entrada del menú simplemente ejecuta un comando de Emacs y todo esto se puede hacer en modo de texto. Para forzar el modo de texto en un entorno GUI, ejecute emacs –nw en una terminal.

Cuando inicie Emacs por primera vez, se le presentará una pantalla de bienvenida. Esta pantalla ya muestra más características de Emacs. El texto subrayado son enlaces, se pueden activar con un clic del mouse o presionar enter con el cursor en uno. Algunos son enlaces a una página web, que muy probablemente abrirían eww (navegador web integrado de Emacs). También hay un tutorial incorporado en esa página.

Su diseño inicial consistirá en un solo cuadro, que probablemente contendrá el contenido de Emacs. Debajo del marco, tiene la barra de estado y lo que parece ser un espacio vacío debajo de la barra de estado. Este espacio vacío es en realidad un mini-búfer que Emacs usa para interactuar contigo. En la imagen, el minibúfer tiene el texto no está definido.

El concepto esencial de las asociaciones de teclas en Emacs

La combinación de teclas (o atajos de teclado) es la forma de controlar Emacs. Siempre comienza con una combinación de teclas.

Emacs usa teclas modificadoras como prefijo de combinación de teclas. Los modificadores más importantes son C (Ctrl), M (Meta), S (Shift). M (Meta, normalmente asignado a ALT).

Para resumir, la convención clave es:

  • C =Control
  • M =Meta =Alt
  • S =Cambio

Sinceramente, creo que el enlace de teclas es una de las principales razones por las que la gente deja de aprender Emacs. Hay más de 1300 combinaciones de teclas en una configuración predeterminada de Emacs. Pero no olvide que Emacs es solo un editor de texto cuando edita archivos, esas más de 1300 combinaciones de teclas hacen mucho más que editar archivos.

Entonces, ¿cómo comienza uno a aprender Emacs y su obsesión con las combinaciones de teclas? Es bastante simple, la idea básica es practicar algunas combinaciones de teclas a la vez, se convertirán en memoria muscular muy rápidamente. Cuando grabo lecciones en video sobre Emacs, digo la combinación de teclas mientras las presiono, bueno, al menos lo intento. La verdad es que las pulsaciones de teclas se han hecho y procesado durante mucho tiempo mientras todavía estoy tratando de averiguar cuáles fueron. La parte más grande y más difícil es este documento.

¡Comencemos y recuerde practicar mucho la combinación de teclas!

La mejor manera de explicar cómo escribimos la combinación de teclas es con algunos ejemplos. Sin embargo, no todos los ejemplos son enlaces de teclas funcionales:

  • C-x =CTRL+x
  • C-x 2 =Presione CTRL y x, luego presione 2 (la tecla CTRL debe soltarse antes de presionar 2)
  • C-x C-2 =Presione CTRL y x, luego CTRL y 2. O CTRL-x-2 (no suelte CTRL)
  • Comando M-x =Presione META+x

También verá regularmente en la documentación el enlace de teclas escrito con texto entre ().

C-x C-f (find-file)

El texto dentro de () representa la función de Emacs que se ejecutará con esta combinación de teclas. Pronto quedará claro por qué esto es importante.

Las teclas favoritas de Emacs son CTRL y ALT. Si bien la tecla ALT no representa un problema, se sabe que el uso extensivo de la tecla CTRL izquierda causa problemas en el dedo meñique. Puede usar fácilmente xmodmap para intercambiar las teclas CTRL y BLOQ MAYÚS o cualquier otra tecla que prefiera.

Uso de Emacs con enlaces de teclas, también conocidos como Emacs Commands

Como se mencionó anteriormente, concéntrese en aprender algunas combinaciones de teclas a la vez, se convertirán en memoria muscular. El primer conjunto es la parte más difícil, pero será suficiente para comenzar a trabajar con Emacs como editor de texto.

Manipulación de fotogramas
C-x 2 ventana-dividida-abajo
C-x 3 ventana dividida a la derecha
C-x o otra-ventana
C-x 1 eliminar-otra-ventana
C-x 0 eliminar-ventana
Manipulación de búferes
C-x b cambiar a búfer
C-x C-B lista-buffers
C-x k buffer de muerte
Abrir y guardar archivos
C-x C-f buscar-archivo
C-x C-s guardar-búfer
Buscar y reemplazar
C-s búsqueda hacia adelante
C-r búsqueda hacia atrás
Seleccionar, cortar, copiar y pegar
C- set-mark-command
C-w matar-región
L-mi matar-anillo-guardar
C-y tirar

Hablemos de esto en detalle.

Manipulación de fotogramas en Emacs

Como se mencionó anteriormente, los marcos son la forma en que Emacs divide su ventana. Antes de aprender sobre el búfer, veamos cómo dividimos nuestra pantalla.

  • C-x 2 dividirá el cuadro actual horizontalmente.
  • C-x 3 dividirá el cuadro actual verticalmente.
  • C-x o moverá el enfoque al siguiente cuadro. Si el mini-tampón está activo, será parte del ciclo.
  • C-x 1 cerrará todos los demás cuadros, dejando solo el cuadro actual. No cierra los búferes.
  • C-x 0 cierra el cuadro actual.

La siguiente imagen muestra muchos marcos, algunos muestran el mismo búfer pero con un cursor en una ubicación diferente.

Manipulación de búferes en Emacs

  • C-x b (cambiar a búfer)
  • C-x C-B (búferes de lista)
  • C-x k (buffer de eliminación)

Los búferes son con lo que trabaja, los búferes contienen datos, principalmente texto. Cuando abre un archivo, el contenido de ese archivo se coloca en un búfer. Este búfer recibirá el nombre del nombre del archivo. Luego trabaja dentro del búfer. Los cambios se aplican a la fuente (archivo) cuando se solicita guardar. Por defecto, Emacs tiene guardado automático. No guarda cada x minutos, sino cada x modificaciones realizadas en el búfer. Un búfer abierto sin modificaciones no activará el autoguardado.

Para cambiar a un búfer diferente, presione C-x b, el minibúfer se activará y estará listo para recibir el nombre del búfer. El autocompletado está vinculado a la tecla . Si son posibles varias coincidencias, presione por segunda vez para crear un búfer temporal con todas las coincidencias posibles. Si proporciona un nombre de búfer que no existe, se creará un nuevo búfer. Esto NO crea un nuevo archivo. A menudo uso esto para crear un búfer temporal.

No lleva tiempo tener muchos búferes, y es posible que no los recuerde todos. Para enumerar todos los búfer abiertos actualmente, presione C-x C-b . Se abrirá un nuevo búfer en un marco dividido con la lista completa de búferes. Puede maniobrar dentro de ese búfer con la tecla de flecha y cambiar al búfer en el punto con .

Desde dentro de la lista de búfer, puede marcar la entrada en el punto para:

  • guardar presionando s
  • Eliminación (Eliminar el búfer, no elimina el archivo) presionando d o k
  • Eliminar banderas presionando u
  • Ejecute todas las banderas marcadas presionando x

Para eliminar cualquier búfer, presione C-x k el mini búfer se activará y esperará un nombre de búfer, puede ingresar cualquier nombre de búfer existente y presionar . Si no proporciona un nombre y presiona , Emacs cerrará el búfer actual.

La siguiente imagen muestra la lista de búferes con búferes marcados para guardar o eliminar.

Abrir y guardar archivos en Emacs

  • C-x C-f (buscar archivo)
  • C-x C-s (guardar-búfer)

La mayoría de las veces necesita trabajar con archivos. Comience abriendo un archivo presionando C-x C-f. El mini búfer le presenta una ruta y está listo para que ingrese la ruta del archivo que desea abrir. La finalización automática también funciona aquí, autocompletará los nombres de directorios y archivos. Una vez que esté satisfecho con la ruta del archivo, presione . Se abrirá un nuevo búfer con el contenido del archivo. El búfer llevará el nombre del archivo. Una vez que se modifica un búfer, aparecerán 2 estrellas en el lado izquierdo de la barra de estado. Para guardar su modificación:C-x C-s

Si proporciona una ruta a un archivo que no existe después de presionar C-x C-f, se creará un nuevo búfer, pero el archivo se creará solo cuando guarde el búfer.

Si proporciona una ruta de directorio después de C-x C-f, se abrirá un nuevo búfer con el contenido del directorio. Este nuevo búfer estará en modo DIRED. Mientras está en modo DIRED, puede maniobrar con las teclas de flecha. Cuando esté en el archivo deseado, presione y se abrirá en un nuevo búfer. Si vuelve a elegir presionar en un directorio, una vez más se abrirá un nuevo búfer en modo DIRED.

Se pueden realizar muchas operaciones en el sistema de archivos mientras está en modo DIRED, pero como se explicó anteriormente, centrémonos primero en lo básico.

Cuando trabaja en un sistema Linux, a menudo tiene que trabajar en archivos que requieren acceso de root. Emacs maneja esto muy bien. No cierre Emacs y ejecútelo como root, esto no es una buena idea.

Presiona C-x C-f luego proceda a borrar la ruta dada en el minibúfer y reemplácela con /sudo::/path/to/file . Emacs intentará abrir el archivo con el comando sudo and si es necesario, se le solicitará su contraseña.

Si intenta utilizar el autocompletado , se le pedirá su contraseña si es necesario y el autocompletado funcionará. El modo DIRED se puede abrir como root. Tenga en cuenta que un nuevo búfer llamado *tramp/sudo …. se creará. Este es un búfer que necesita Emacs para manejar sudo.

Si lo elimina, aunque no se recomienda, lo más probable es que se le solicite su contraseña cuando intente guardar y el búfer de vagabundeo volverá. Abrir múltiples búferes como root resultará en múltiples búferes de tramp.

Es igual de fácil abrir un archivo en una computadora remota usando ssh desde Emacs:

C-x C-f /ssh:[email protected]:/path/to/file

¿Debería estar pensando en abrir un archivo en un sistema remoto como root? Sí, pero me lo quedaré para otro momento.

Esta imagen muestra en el marco izquierdo el modo DIRED de mi directorio de inicio y en el derecho mi archivo .emacs.

Buscar y reemplazar en Emacs

  • C-s (isearch-forward)
  • C-r (isearch-atrás)
  • M-% (consulta-reemplazo)

Para realizar una búsqueda hacia adelante, presione C-s esto activará el minibúfer para que ingreses el texto a buscar. La búsqueda ocurre a medida que escribe. Para pasar al siguiente partido, presione C-s otra vez. La búsqueda terminará pero después de advertirle una vez. Tenga en cuenta que al presionar la tecla de retroceso, primero volverá a la coincidencia anterior antes de eliminar un carácter.

Para buscar hacia atrás, presione C-r

Para reemplazar, presione M-% y ya tendrás el minibúfer listo para tomar el parámetro de búsqueda. Introdúcelo y pulsa , luego proceda a proporcionar la cadena de reemplazo y presione .

La búsqueda y reemplazo se ejecutará desde el cursor hasta el final del búfer.

Seleccionar, cortar, copiar y pegar en Emacs

  • C- (set-mark-command)
  • C-w (región de eliminación)
  • M-w (matar-anillo-guardar)
  • C-y (tirar)
  • M-i (Yank-pop)

Emacs tiene un concepto completamente diferente de seleccionar, cortar, copiar y pegar. Primero, echemos un vistazo a la selección. Si bien el mouse funciona muy bien en el modo GUI, aprender a no usarlo valdrá la pena cuando la GUI desaparezca. Lo que usted llama un área seleccionada, Emacs lo llama una región activa. Para hacer una selección o activar una región, coloque el cursor al comienzo del área deseada, luego presione C- mueva el cursor 1 carácter más allá del final del área deseada. Esta región se activa automáticamente. Si bien este concepto de región activa puede parecer inútil ahora, es importante comprenderlo cuando comience a realizar funciones para automatizar tareas repetitivas.

Emacs no corta, mata. Cuando matas una región activa con C-w , Emacs lo "cortará" del búfer y lo guardará en un kill ring. El anillo de muerte mantiene múltiples entradas ya sea muertas C-w o copiado M-w . Luego puede tirar (pegar) esas entradas fuera del anillo de eliminación y en el búfer actual en el punto con C-y . Si justo después de presionar C-y continúas con M-y, la entrada que se pegó en el búfer desde el anillo de eliminación se reemplazará con la anterior. Sacar una entrada del anillo de muerte NO la elimina del anillo de muerte y se puede volver a sacar más tarde.

Ejecutar comando extendido en Emacs

  • M-x (ejecutar-comando-extendido)

Meta-x es una combinación de teclas única. Después de presionar la combinación de teclas, mire el mini búfer. Su cursor se colocará automáticamente allí y Emacs y estará listo para recibir un comando.

Los comandos para las combinaciones de teclas se escriben entre paréntesis. No escriba los paréntesis al escribir el comando. Después de escribir su comando, presione .

Es común ver el comando M-x escrito en el siguiente formato:

M-x find-file <RET> ~/path/to/file <RET>

Tenga en cuenta que se admite la finalización automática con la tecla

¿Por qué aprender sobre el comando cuando puedo usar el enlace de teclas? Primero, incluso con más de 1300 combinaciones de teclas, no todos los comandos tienen una. Los comandos también le dan el poder de escribir funciones para realizar las modificaciones deseadas en un área seleccionada (región activa) o en todo el búfer. Esas funciones se pueden llamar con M-x functionName y, si es necesario, vinculado a una combinación de teclas de su elección.

Un comando que vale la pena mostrar a un nuevo usuario es M-x shell . Recuerde como dije que Emacs no es solo un editor de texto. El comando anterior abrirá un nuevo búfer con un indicador de shell. Este no es un emulador de terminal completo, por ejemplo, no maneja muy bien la aplicación basada en curl. La pantalla no se actualiza correctamente. Pero tiene otras ventajas. Este búfer de shell es un búfer de texto de lectura/escritura. Cuando coloque el cursor al final y escriba un comando, presione   , el comando se envía a una subcapa y la salida se agrega al búfer. Esto le permite buscar fácilmente hacia adelante y hacia atrás, copiar y pegar, seleccionar una región completa e incluso guardar el contenido del búfer en un archivo.

El segundo comando más importante que debe aprender es M-x ren-buf NewBufferName . Este comando le permite cambiar el nombre del búfer actual. Si el búfer contiene el contenido de un archivo, esto no cambiará el nombre del archivo. Esto es útil cuando necesita más de un shell. Si escribe M-x shell y tienes uno abierto, dará a luz el existente. Cambie el nombre del búfer *shell* para abrir más shell. Emacs también tiene eshell y term, pero esto está más allá de nuestro alcance actual.

Conclusión

Este artículo representa una introducción muy breve y rápida a Emacs. Aprendió los comandos básicos/asociaciones de teclas de Emacs y algunos conceptos básicos sobre la edición con Emacs.

Hay mucho más que puede hacer por ti. Con más de 4000 paquetes disponibles para su instalación con el sistema de gestión de paquetes integrado de Emacs. La flexibilidad que ofrece es asombrosa. Emacs crecerá y evolucionará contigo.

Para más información sobre Emacs y otros temas de Linux, sígueme en Facebook:Aprendiendo Linux con Eric Simard


Linux
  1. Comenzando con Zsh

  2. 20 comandos básicos de Linux para principiantes explicados con ejemplos

  3. Comenzando con ls

  4. Primeros pasos con Samba para la interoperabilidad

  5. Primeros pasos con PostgreSQL en Linux

Primeros pasos con el sistema operativo Linux

Primeros pasos con GitHub

Introducción a los comandos ad hoc de Ansible

Primeros pasos con el administrador de paquetes de Nix

Primeros pasos con systemctl

Introducción a los comandos de Pacman en distribuciones de Linux basadas en Arch

    Ejecución de comandos
    M-x ejecutar-comando-extendido