Aprendiendo GNU Emacs y org-mode (I)

GNU EMACS

Mi pantalla emacas

Un editor de texto, libre, extensible, configurable y más.
Su esencia es un interprete de Emacs Lisp, un dialecto del lenguaje de programación Lisp con extensiones para  soportar la edición de textos.

Cómo ya dije en este post anterior en mi conpromiso con el Software Libre y migración a GNU/LInux este sistema me pareció lleno de posibilidades en mi nuevo enfoque, por lo que era urgente iniciar un proceso de aprendizaje rápido que me ayude a ir ajustando mi nuevo flujo de trabajo.

Cómo consecuencia de ello empieza una serie que será larga, ya que hay mucho por descubrir en este inmenso mundo.

Que es Emacs

Lo primero que llama la atención al adentrarse en él, es que en la
mayoria de los casos se hace referencia a GNU Emacs cómo un editor de texto, sin embargo entre otras cosas por lo que visto por la red pude usarse como:

  • Lector de noticias
  • Navegador de internet
  • Cliente de correo
  • Gestor de archivos
  • Entorno de desarrollo

y algunas cosas más.

Instalación

Cualquier instalación GNU/Linux, al menos las que yo conozco incluye
el paquete emacs, por lo que podrá instalarse de la forma habitual en la misma.

En cualquier caso a efectos de este aprendizaje, yo he usado para el primer acercamiento esta guía, habiendo ajustado mi instalación a lo descrito en el apartado 2 de la misma.

Conceptos básicos

Para entender el funcionamiento y los textos referentes a GNU Emacs es necesario tener claros algunos términos fundamentales.

  • Marco: Es el contenedor en el que se ejecuta la aplicación, hay que tener en cuenta que si estamos en modo consola sólo podremos tener un Marco, mientras que en modo X podemos abrir mas de uno si lo consideramos necesario, aunque por defecto abrira sólo uno. Este concepto equivale a una ventana del gestor de ventanas.
  • Modo: Emacs trabaja en diferentes modos mayores.  Estos modos están hechos para atender diferentes necesidades cómo editar diferentes lenguajes y/o clases de texto, tales como modo de Lisp, modo de Texto, etc.  En cualquier momento uno y solo un modo mayor está activo, y su nombre siempre se puede encontrar en la línea de modo. Cada modo mayor hace que algunos comandos actúen diferente. De hecho org-mode  no es otra cosa que uno de los modos mayores en los que podemos trabajar, tecleando M-x org-mode o abriendo un fichero .org
  • Buffer: Podríamos definirlo como un “espacio de trabajo”.  GNU Emacs abrirá un buffer por cada fichero que abramos, además de utilizar algunos buffers especiales no asociados a ficheros.
  • Ventana: Es el espacio principal del marco,  en él se muestra el
    contenido del buffer en el que estemos trabajando.  Cada ventana
    puede dividirse, tanto horizontal como verticalmente, para mostrar disntas partes del mismo Buffer o Buffers diferentes.
  • Punto: el punto en Emacs es el lugar  de la ventana donde tendrán efecto los comandos de edición, de ahí mi elección del término, más allá de la ubicación y la representación visual del mismo, que cambia en función de muchos comandos  o de donde lo ubiquemos con el puntero del ratón cómo veremos más adelante.  Aunque el punto siempre parece estar sobre un carácter, se encuentra en realidad entre dos caracteres; siempre apunta detrás,  entre el carácter que aparece bajo el cursor y el anterior.  Por ejemplo, si su texto fuera “prueba” con el punto  encima de `b’, este estará en realidad entre la “e” y esta por lo que al insertar un carácter este lo hará tras la “e”.  Visualmente el punto aparece cómo un bloque rectangular, que parpadea al entrar en un buffer determinado y deja de hacerlo tras unos segundos, por supuesto siempre en función de cómo tengamos configurado nuetro  Emacs.  En los buffer inactivos puede verse como un bloque hueco.
  • Minibuffer: Es la linea inferior del marco, destinada a la introducción de comandos y a mostrar mensajes al usuario.
  • Teclas especiales: Los comandos en GNU Emacs se introducen siempre mediante combinaciones de teclas que incluyen una o varias teclas especiales, que son:
    • Control (C)
    • Meta (M) (Habitualmente la tecla Alt del teclado)
    • Shift (S)
La pantalla

Al abrir GNU Emacs nos encontramos con una pantalla similar a esta:

Mi pantalla emacasEn ella vemos una sesión recién abierta de GNU Emacs, con el comando usado para copiar la pantalla, que es un comando GNU/ Linux estándar, ya que podemos ejecutar los comandos de consola desde el propio GNU Emacs.

La Ventana es el espacio mayor dedicado a la edición, en el borde superior vemos la barra de menús.  En la parte inferior de la  ventana, vemos la linea de modo – comenzando en 191 -, que incluye
información del fichero abierto y el *modo* en que estamos trabajando
y bajo ella el minibúfer, el  espacio donde hemos tecleado el comando donde también aparecen las peticiones al usuario.

Uso básico del teclado

Lo primero a que me he enfrentado ha sido toda una serie de teclas que sin embargo por lo que voy viendo, no resulta tan difícil de ircogiendo soltura.

El esquema de uso del teclado en Emacs es sencillo de estructura, aunque complejo en el número de comandos y se basa en  conbinaciones de teclas con, hasta ahora he descubierto, tres teclas especiales:

  • CONTROL: llamada C, CTRL O CTL)
  • META: llamada M, EDIT o ALT)
  • SHIFT: llamada S, o SHIFT

Normalmente en las guias, a fin de simplificar se usan abreviatura del
tipo [C/M/S]-<car> lo que significa mantener pulsada la tecla correspondiente y teclear el carácter indicado.

Algunos comandos implican teclear pares de de estas convinacione,  por ejemplo para salid de GNU Emacs se debe pulsar C-x C-c.  Para cancelar un comando usaremos la combinación C-g.

Cómo idea general los comandos se distribuyen de esta forma:

  • C-c:  Comandos de edición para el modo actual (varian en función de los deferentes modos)
  • C-x: Comandos para manejar ficheros y buffers
  • C-h: Comandos de ayuda
  • M-x: Llamadas a funcionespor nombre

Bueno, por el momento pararemos aquí que hay para rato 😉

2 opiniones en “Aprendiendo GNU Emacs y org-mode (I)”

Deja un comentario