* Introducción a (GNU) Emacs Por: kempii Para: Software Freedom Day 2022 Desde: Autodefensa Digital del Norte Hackerspace ** ¿Qué es Emacs? Emacs es un *editor de texto* (de software) *libre*, que es extendible, personalizable y mucho más. Además, en un sentido más avanzado, es un *interpretador de Emacs Lisp* (dialecto del lenguaje de programación Lisp) con extensiones que facilitan la edición de texto. Es uno de los software libres más antiguos que siguen en desarrollo. Originalmente escrito en 1976 por David A. Moon y Guy L. Steele Jr., mientras que la variante más popular, GNU Emacs, fue originalmente escrita por Richard Stallman. (GNU) Emacs tiene licencia de GPL 3.0 o posterior (General Public License), por lo que se pueden ejercer las cuatro (4) libertades del software libre: 0. la libertad de *usar* el programa, con cualquier propósito (uso). 1. la libertad de *estudiar* cómo funciona el programa y modificarlo, adaptándolo a las propias necesidades (estudio). 2. la libertad de *distribuir* copias del programa, con lo cual se puede ayudar a otros usuarios (distribución). 3. la libertad de *mejorar* el programa y hacer públicas esas mejoras a los demás, de modo que toda la comunidad se beneficie (mejora). /Nota: Las libertades 1 y 3 requieren acceso al código fuente, porque estudiar y modificar software sin su código fuente es muy poco viable./ *** ¿Qué ofrece Emacs? - Gran experiencia en edición de texto - Poderosos atajos de teclado (keybindings) - Completamente personalizable - Funciones para casi todo, y para lo que no, tú las puedes crear - Mucha y muy accesible documentación - Mucha comunidad activa - Infinidad de paquetes para cualquier cosa ** Ya entré a Emacs, ¿ahora cómo me salgo? Existen dos teclas muy importantes para trabajar en Emacs: - *CONTROL*: También llamada CTRL o CTL - *META*: También comúnmente llamada META Estas dos teclas se utilizan para realizar los comandos y atajos de teclado. En lugar de escribir completamente esto en cada ocasión, usaremos las siguientes abreviaturas: C- significa mantener presionada la tecla CONTROL mientras teclea el carácter . Por lo tanto C-f será: Mantenga presionada la tecla CONTROL y teclee f. M- significa mantener presionada la tecla META o ALT mientras teclea . Si no hay teclas META o ALT, en su lugar presione y libere la tecla ESC y luego teclee . Escribimos para referirnos a la tecla ESC. Ahora sí, ¿cómo me salgo de Emacs? El comando para salir es: - *C-x C-c* -> Este atajo de teclado corre el comando *save-buffers-kill-terminal*, que también pueden ejecutar de la siguiente manera *M-x save-buffers-kill-terminal* -> /Nota importante: Para cancelar un comando parcialmente introducido, teclee C-g./ ** Navegación *** Para ver pantallas completas Los siguientes comandos son útiles para ver pantallas completas: C-v Avanzar una pantalla completa M-v Retroceder una pantalla completa C-l Limpiar la pantalla y mostrar todo el texto de nuevo, moviendo el texto alrededor del cursor al centro de la pantalla (Esto es CONTROL-L, no CONTROL-1.) *** Movimiento básico del cursor Línea anterior, C-p :: :: Atrás, C-b.... Posición actual del cursor .... Adelante, C-f :: :: Línea siguiente, C-n Resulta más fácil recordar estas letras por las palabras que representan en inglés: - P de Previous (anterior) - N de Next (siguiente) - B de Backward (atrás) - F de Forward (adelante). /Vamos a estar usando estos comandos de posicionamiento básico del cursor todo el tiempo./ ** Archivos, buffers, frames y ventanas ** Edición de texto ** Personalización de Emacs ** ¿Qué más puedo hacer? - Modos (modes) y modos menores (minor modes) - Calendario - Correo - Lector de noticias - IRC / mensajería - Navegación web - Debugger - Personalización de IDE - Magit (interface para git) - Org mode [[file:~/Proyectos/Presentaciones/real_programmers.png][Emacs comic]]