Guía rápida de Emacs

░█▀▀░█▄█░█▀█░█▀▀░█▀▀
░█▀▀░█░█░█▀█░█░░░▀▀█
░▀▀▀░▀░▀░▀░▀░▀▀▀░▀▀▀

Aunque Emacs tiene fama de complicado, con un poco de manejo se puede convertir en tu editor favorito y facilitarte un montón de tareas en modo texto.

Suele pasar que de primeras te pierdes con su documentación que es bastante extensa. Además recoge todas las acciones por secciones, tanto las más habituales como las más inusuales.

Por lo que es difícil encontrar cómo hacer «lo básico».

Lo básico:

Aquí no vale el ratón. Si queremos realizar cualquier acción tendremos que preactivar la barrita de abajo con una combinación de teclas (keybinding) que normalmente comenzará por una tecla (ctrl, alt, shift o en menor medida espacio, enter o del), seguida de otra. En la barra inferior de Emacs aparecerá la tecla pulsada y esperará que pulses la siguiente. Una vez completada la combinación Emacs habrá realizado la acción y volverás al modo edición.

Los búfers

Podemos pensar en un bufer como una pestañita de nuestro editor. Un espacio en memoria donde editar un nuevo texto. Normalmente no se ven, pero están ahí. Podemos cambiar de pestañita (buffer) pulsando C-x flecha(der o izq).

Por defecto encontraremos 3 bufers abiertos:

El archivo init (o dotfile)

Toda la configuración de Emacs se guarda en un archivo llamado init.el, que está en el directorio:

~/.emacs.d/init.el

No entraré mucho en la edición de este fichero, pero básicamente es el que nos permite añadir todo tipo de customizaciones al software. A saber:

- añadir repositorios, como MELPA, que alberga la mayor colección de extensiones para Emacs

- cambiar el tema

- activar/desactivar números de línea

- habilitar modos por defecto para según que tipos de archivo

- cualquier otra cosa que se te ocurra seguro que también se puede hacer

Teclas básicas usadas en la notación de Emacs

M     = alt
C     = ctrl
SPC   = espacio
RET   = return
RETRO = retroceso

Acciones básicas

Abrir, cerrar, seleccionar, guardar, copypaste...

C-x b     = Nuevo búfer (scratch file) 
C-x C-f   = Abrir un archivo
C-x d     = Abrir un directorio
C-x C-s   = Guardar cambios

C-x C-w   = guardar como
C-x s     = guardar todo

C-x C-c   = Cerrar programa

C-Esp     = Comenzar a seleccionar texto
C-h       = Seleccionar todo

M-w       = Copiar
C-w       = Cortar
C-y       = Pegar

Shell

M-x shell = Abre el bash en un nuevo búfer

SOS

C-g       = cancelar el comando que has empezado a escribir accidentalmente
C-x u     = deshacer (el ctrl + z de siempre)

Moverse

C-f       = avanzar
C-b       = retroceder
M-f       = avanzar el cursor una palabra
M-b       = retroceder el cursor una palabra
C-a       = ir al comienzo de la línea 
C-e       = ir al final de la línea 

🔍 Buscar

C-s       = Buscar hacia delante
C-r       = Buscar hacia atras
C-s C-s   = Repetir la búsqueda

🗑️ Borrar

M-d        = Borrar palabra después del cursor
M-3 M-d    = Borrar 3 palabras
C-k        = Borrar del cursor a final de línea
M-3 C-k    = Borrar 3 líneas
M-k        = Borrar todo el párrafo
M-3 M-k    = Borrar 3 párrafos

Ventanas

C-x 2      = dividir la ventana en 2 (horizontal)
C-x 3      = dividir la ventana en 2 (vertical)
C-x 1      = deja solo la ventana activa abierta
C-x o      = cambiar de ventana
C-x 0      = Eliminar ventana actual
C-x {      = Acortar ventana en horizontal
C-x ^      = Alargar en dirección vertical

Bufers

C-x b      = Cambiar de bufer
C-x k      = Cerrar bufer actual
C-x C-b    = Listar bufers

📑 Marcadores

C-x r m    = Marcar una línea (para regresar en otro momento)
C-x r b    = Ir a la línea marcada con el nombre puesto (p. ej: b)
C-x r l    = Listar marcadores

Activar el modo Emmet

M-x emmet-mode (Activa modo emmet en el documento)
C-j            (Trigguea el atajo de emmet)

Sistema

C-h m       = Muestra los modos menores activados

🖨️ Imprimir

C-u M-x ps-print-buffer-with-faces   = Imprimir en postscript
M-x print-buffer                     = Imprimir archivo con numeracion

Encontrar archivo .emacs o init.el

M-: (find-file user-init-file)

Añadir MELPA a la lista de repos:

(add-to-list 'package-archives
             '("melpa-stable" . "https://stable.melpa.org/packages/") t)

Listar paquetes INSTALADOS:

C-h v package-activated-list

---

Referencias:

Emacs.Cuatro cositas para no perecer en el intento

Relacionados

Org Mode. Un template autoexplicativo