Ya iba siendo hora de mostrar al mundo un artículo sobre Emacs. ¿Nunca te habías animado a probarlo? ¿¡Tenias miedo!? ¿¡ERAS DE ESOS QUE AMAN AL DEMONIACO VIM!? ¡Ya es hora de que lo pruebes! Aunque cuidado…. Se dice que vicia ;P

En este artículo vamos a ver un breve chuletario de los atajos básicos, cosillas curiosas de este editor y finalmente el espacio de trabajo preferido por el autor de este artículo.

Datos útiles:

  • Emacs por defecto nos va guardando un respaldo según vamos escribiendo. Podemos recuperar archivos perdidos o mal guardados siempre que queramos. Se puede desactivar el respaldo en «.emacs» . Más adelante nos centraremos en este archivo.
  • Emacs es un editor que tira a ser un sistema operativo al completo. Desde él podemos, por ejemplo, ejecutar comandos, jugar a juegos, usar el navegador, enviar correos, escuchar música, …
  • Puedes ejecutar Emacs tanto en la terminal como con Interfaz Gráfica
  • El uso de los atajos se lleva a cabo con la tecla Ctrl y con la tecla Alt. En este post usaremos «M» para la tecla «Alt» y «C» para la tecla «Control». El significado de las combinaciones serían:
    • C-x s : Presionamos «ctrl» y sin soltar presionamos «x». Luego soltamos y presionamos la «s»
    • C-x C-c : Presionamos «Ctrl» y sin soltar presionamos «x». Luego, sin soltar la tecla «Ctrl», presionamos «c».

Arrancando Emacs:

# Para abrir emacs con interfaz gráfica
$ emacs

# Para lanzar emacs sin interfaz gráfica
$ emacs -nw
ó
$ emacs –no-window-system

Yo habitualmente lo hago sobre la propia terminal, soy una persona de terminales… SI quieres ver el resto de flags visita este link: https://www.gnu.org/software/emacs/manual/html_node/emacs/Initial-Options.html
Normalmente al abrir emacs con un perfil de terminal definido, como por ejemplo un perfil con color de fondo negro y letras verdes, emacs se abrirá con dichos colores.

Comandos básicos para iniciarse:

Más adelante veremos mayor cantidad de comandos. De momento, os dejamos esta pequeña lista para que aprendáis los atajos básicos que os permitirán defenderos en estos primeros pasos:

  • C-x C-f : apertura de un archivo
  • C-x C-c : salimos de emacs
  • C-x C-s : guardamos el archivo
  • C-x 2 : dividimos la pantalla en dos en horizontal
  • C-x 3 : dividimos la pantalla en vertical
  • C-x o : nos movemos entre las pantallas
  • C-g : para cancelar una acción
  • C-v : desplazarnos «1 página» hacia delante
  • M-v : desplazarnos «1 página» hacia atrás
  • C-w : cortar texto
  • M-w : copiar texto
  • C-y : pegar texto
  • M-x replace string : si queremos replazar una palabra en todo el documento
  • C-s : buscar una palabra. Al escribirlo nos pedirá la palabra, sin darle enter, volver a pulsar C-s para avanzar en la busqueda. Si queremos realizar la busqueda hacia atrás deberemos pulsar C-r
  • C-_ : deshacemos una acción que hayamos hecho. (Prefiero esto a «C-x u» porque sin soltar «ctrl» por cada «_» que pulsemos vamos yendo hacia atrás).
  • Para rehacer: algo curioso es que si escribes cualquier secuencia después de haber realizado la acción de deshacer. Estas acciones (las de deshacer) se van a la pila. Si tras enviarla a la peli volvemos a hacer deshacer. Lo que hará será deshacer lo que hemos deshecho. Esto significa que nos rehará todo lo deshecho. Normalmente se usa C-f tras haber deshecho con C-_ , seguidamente al ejecutar C-_ estaremos rehaciendo lo deshecho.
  • Algo chulo, es poder comentar muchas líneas de código de golpe:
    • C-SPC: con SPC me refiero a espacio. Esto nos sirve para seleccionar texto. Si queremos dejar de seleccionar volvemos a usar la misma combinación.
    • C-c C-c : con el texto seleccionado usando el atajo anterior, pulsamos esta combinación y nos comentará todas las líneas.

Compilando código en Emacs:

La mejor forma para compilar en emacs, a mi forma de verlo, es ejecutando:

M-x compile 

Tras ejecutarlo por defecto nos aparece la orden «make».
Si lo que queremos es compilar C++ escribiríamos «g++ -o nombreEjecutable nombreFichero.cpp«, o si lo que queremos es compilar C escribiriamos «gcc -o nombreEjecutable nombreFichero.c«, y así con la compilación de los diferentes programas que deseemos crear.

Ejecutando en Emacs:

Algo que me encanta de Emacs, es poder tener la terminal dentro del editor. La mejor forma para hacerlo es ejecutando:

M-x shell

Tras ejecutarlo nos aparece una shell dentro del propio emacs. Más de uno tras usarla, si está acostumbrado al uso de la terminal en GNU/Linux, verá que al subir hacia arriba con la tecla arriba nos desplazamos hacia arriba sin mostrarnos el comando anterior. Para esto podríamos cambiar el tipo ejecutando:

M-x eshell

La verdad es que a mi forma de uso me es indiferente, depende de quien quiera usarlo.

Mi espacio de trabajo:

Para empezar, mis preferencias son tener emacs en la terminal. Como hemos visto anteriormente, ejecutaría:

$ emacs -nw <archivo a editar>

Posteriormente, una vez tengo emacs abierto, divido la pantalla en dos, tal que:

C-x 3

A la izquierda suelo poner el código que escribo y a la derecha siempre coloco el resultado de la compilación y la shell. Un truco es que cuando se escribe en la terminal de la izquierda, al ejecutar «M-x compile» directamente el resultado de la compilación se coloca en el lado opuesto a donde hemos escrito. Siempre podremos tener a la izquierda el código que vamos escribiendo y a la derecha los resultados tanto de compilación como de ejecución. Nos moveremos entre las ventanas con C-x o.

Por supuesto, me pongo música a través de emacs, pero eso lo dejamos para la siguiente entrega 😛

¡Ahora solo queda que comenceis a trastear! Estad atentos a las redes sociales porque este post irá creciendo. Cualquier comentario o sugerencia es bienvenido 🙂

Para la siguiente entrega:

Como ser eficientes a la hora de escribir código.
Instalación de módulos.
Usar emacs como reproductor mientras programamos.
Org-mode
Magit
Spacemacs
Navegando desde Emacs

 

Este artículo va dedicado a Jorge, ExVim user y a Dan, futuro Emacs Lover.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *