Una guía de referencia para Emacs

Introducción

Esta pequeña guía de referencia para Emacs muestra las combinaciones de teclas habituales o hot keys para operar con este editor. Como suele ser habitual, se trata de otra entrada para mis apuntes, aunque quizás os pueda servir en algún momento. No soy un experto en este editor, de hecho estoy prácticando mientras lo elaboro utilizando Markdown

La idea de empezar a trabajar con Emacs ha venido a partir de opiniones de compañeros de la linuxfera, que lo tienen como editor principal. Además, la intención es, más adelante, trabajar con Org mode, propio de este editor.

¿Qué es Emacs?

Tal y como indican en la propia web del proyecto se trata de un editor de texto libre, extensible, personalizable y mucho más. En sus origenes fue pensado para Emacs Lisp, un dialecto del lenguaje de programación Lisp, con extensiones para admitir la edición de texto. Fue creado originalmente por Richard Stallman y está incluido dentro del proyecto GNU. Entre sus principales características se encuentran:

  • Resaltado de sintaxis para gran número de formatos de archivos.
  • Documentación integrada, incluyendo un completo tutorial.
  • Soporte completo de Unicode para casi todos los scripts humanos.
  • Altamente personalizable, utilizando el código Emacs Lisp o una interfaz gráfica.
  • Todo un ecosistema de funcionalidad más allá de la edición de texto, que incluye un planificador de proyectos, lector de correo y noticias, interfaz de depuración, calendario y más.
  • Instalación fácil de extensiones.

Muestra de uso, escribiendo esta misma entrada.

Antes de nada, utiliza los tutoriales

Emacs tiene una curva de aprendizaje más alta que otros editores, por lo que se nos facilita, una vez instalado, un tutorial bastante ameno, con ejemplos. Los pasos para acceder al tutorial son:

  • Presionar Control h t
  • Presionar F1 t
  • Presionar Alt x, escribir help-with-tutorial y presionar Enter

Una de las cosas más importantes al utilizar este editor, es el uso de las teclas Ctrl (C en el manual de Emacs y en esta guía) y Alt (Meta)

Trabajar desde la consola de comandos

Para abrir el editor en modo consola de comandos, lo haremos así:

emacs -nw

Si queremos que quede de forma permanente en nuestras distribuciones GNU/Linux, podemos crear una alias, modificando el fichero .bashrc de nuestro usuario y añadir:

alias emacs='emacs -nw'

Para utilizar el alias desde ya:

source .bashrc

Combinaciones de teclas más habituales

Moverse entre páginas

  • Ctrl v – Siguiente
  • Alt v – Anterior
  • Ctrl l – Limpia la pantalla y vuelve a mostrar todo el texto. Central el texto partiendo de la posición del cursor.

Moverse por el texto

  • Ctrl f – Mover el cursor un carácter hacia adelante (follow)
  • Ctrl b – Mover el cursor un cáracter hacia atrás (back)
  • Alt f – Mover el cursor una palabra hacia adelante (follow)
  • Alt b – Mover el cursor una palabra hacia atrás (back)
  • Ctrl n – Mover el curso a la siguiente línea en la misma posición (next)
  • Ctrl p – Mover el cursor a la línea anterior en la misma posición (previous)
  • Ctrl a – Mover el cursor al comienzo de la línea.
  • Ctrl e – Mover el cursor al final de la línea.
  • Alt a – Mover el cursor al inicio de una oración.
  • Alt e – Mover el cursor al final de una oración.

Modificar el texto

  • Ctrl k – Borra el texto (kill), pero lo mantiene guardado en caché, lo podemos recuperar con Ctrl y
  • Ctrl d – Borra un carácter (delete)
  • Ald d – Borra palabras enteras (delete)
  • Ctrl@ o Ctrl Espacio – Marca el texto seleccionado
  • Ctrl w – "Cortamos" el texto seleccionado.
  • Alt w – Copiamos el texto seleccionado.
  • Ctrl h – Marcamos todo el buffer, idéntico a un "Seleccionar todo"
  • Ctrl y – "Yanks text", pega el texto copiado o cortado con w
  • Alt y – Recorre "yanks" previos, podemos de esta manera recuperar algo que "matamos" varios Ctrl k antes.

Comandos

  • Ctrl g – Cancela comandos.
  • Ctrl x u – Deshacer.
  • Ctrl / – Deshacer.

Comandos con Ctrl x

Existen gran número de comandos que se inician con Ctrl x y después otra tecla.

  • Ctrl x Ctrl f – Abre un archivo que exista o sino lo crea. (file)
  • Ctrl x Ctrl s – Guardamos el archivo actual. (save)
  • Ctrl x s – Otra forma de guardar el archivo actual. (save)
  • Ctrl x Ctrl c – Sale de Emacs
  • Ctrl z – Suspende la sesión de Emacs. Podemos volver desde la consola de comandos con fg

Trabajar con el buffer

  • Ctrl x Ctrl b – Lista el buffer. En Emacs no existen "pestañas" o "ventanas**. Cada arhivo con el que trabajamos se guarda en el buffer. Podemos tener varios ficheros en el buffer, que podemos listar.
  • Ctrl x b – Cambiamos de fichero en el buffer. Podemos utilizar el tabulador para autocompletar el nombre.
  • Ctrl x k – Matar la sesión en el buffer.
  • Ctrl x s – Guardar la sesión actual en el buffer.

Otros comandos

  • Alt x – Modo comandos. Nos permite ejecutar comandos, como los ejemplo siguientes.
  • Alt x replace-string – Reemplazo de strings
  • Alta x recover file – Recupera el respaldo del archivo.
  • Ctrl s – Permite buscar strings en el texto hacia delante.
  • Ctrl r – Permite buscar strings en el texto hacia atrás.
  • Alt % – Para buscar y reemplazar.

Cambiar la vista

  • Ctrl x 2 – Divide la vista en 2 de forma horizontal.
  • Ctrl x 3 – Divide la vista en 2 de forma vertical.
  • Ctrl x 1 – Vuelve a dejar la vista a una.
  • Ctrl Alt v – Realiza scroll de la ventana donde no tenga foco.
  • Ctrl x o – Cambia el cursor de una vista a otra.

A medida que vaya trabajando con este editor, iré añadiendo nuevas combinaciones de teclas.

Fuentes consultadas

La mayoría de estas combinaciones las he obtenido desde la web Picandocodigo.net, además tiene un buen puñado de entradas interesantes.

Para obtener información sobre GNU Emacs he consultado su página web oficial: GNU Emacs

He consultado alguna fuente más para elaborar esta entrada:

Askubuntu.com – How do I download the command-line emacs instead of the GUI one?