Qué es spacemacs

1 Introducción

Mi idea era seguir haciendo artículos básicos sobre Emacs, pero viendo que ya hay muchos de ese tipo, en plan introductorios en el Planeta Emacs en español los cuales están infinitamente mejor de lo que yo pudiera hacer, he decidido dar un pequeño salto cuantitativo e ir comentando otras cosas de Emacs más concretas pero tal vez algo más avanzadas, tampoco mucho.

2 Qué es spacemacs

spacemacs-logo

Spacemacs empezó como una forma de hacer Emacs más accesible usando por un lado reglas mnemotécnicas para poder acordarse de las combinaciones de teclas y por otro lado hacer un uso extensivo del modo evil-mode que es un modo que nos permite usar atajos de teclado de Vim dentro de Emacs. También usa el paquete which-key con el cual podemos ir viendo al mismo tiempo que vamos pulsando teclas cuales son las opciones que tenemos y qué hace cada nueva combinación de teclas.

Pero eso era en sus comienzos. A día de hoy el proyecto tiene en Github más de 13000 estrellas y cerca de 7400 commits.
Así pues el proyecto ya tiene peso propio con una gran comunidad que aporta y se comunica a través de Gitter de manera muy activa siendo posiblemente la comunidad más activa dentro del mundo de Emacs.

Además Spacemacs se sigue preocupando por hacer llegar Emacs a cada vez más gente preocupándose tanto de darle un aspecto por defecto mucho más atractivo visualmente y moderno que cuando ejecutas Emacs sin configurar y agrega algunas ventajas que no tiene Emacs donde para mí la más importante es el uso de Layers.

Por un lado veamos la diferencia entre el aspecto de Spacemacs y el de Emacs cuando lo iniciamos por primera vez.

emacs
Emacs con su configuración básica

Veamos ahora a Spacemacs:

Resumiendo:

2.1 Layers

Los Layers son capas de configuraciones y paquetes. Esto se explica mejor con un ejemplo. Pongamos que quiero programar en Common Lisp, algo muy acertado. Bueno pues configuro a Spacemacs  para que añada este Layer (después veremos cómo). Una vez hecho esto Spacemacs nos instalará varios paquetes destinados para facilitar esta labor, paquetes que incluye coloreadores de sintaxis, completadores de código, auto acabado de paréntesis, así como el compilador correspondiente, puede que también refactorizadores, etc.

Y así con gran cantidad de lenguajes de programación por ejemplo. Además lo interesante es que aunque no lo tengamos previamente configurado para un lenguaje en concreto, en cuanto abramos un fichero con la extensión de un determinado lenguaje de programación Spacemacs nos instalará el Layer correspondiente a ese lenguaje de forma automática.

Pero como no solo de lenguajes de programación vive el Emaquero hay Layer para muchas otras cosas como por ejemplo:

  1. Para chatear
    1. erc
    2. jabber
    3. slack
    4. rcirc
  2. Revisores
    1. De sintaxis
    2. Ortográfico
  3. Autocompletados
    1. E-mail
    2. Gnus
    3. mu4e
  4. Frameworks
    1. django
    2. react
    3. ruby on rails
  5. Control de versión
    1. git
    2. github
    3. preforce
  6. Herramientas
    1. ansible
    2. docker
    3. finanzas
    4. geolocalización
    5. nginx
    6. puppet
    7. systemd
    8. tmux
  7. Servicios Web
    1. elfeed (lector de feeds)
    2. evernote
    3. spotify
    4. twitter
    5. wakatime

Y muchos más Layers. Además cada cierto tiempo se agregan más y si no existe en su extensa documentación te explican como crearte tu propio layer con tus paquetes y tus configuraciones. Esto es algo que ayuda mucho a automatizar nuestra propia configuración.

Os muestro algunos ejemplos de cómo luce Spacemacs con distintos Layers:

spacemacs para javascript
Spacemacs para Javascript

 

O podemos ver a Spacemacs editando un fichero de Typescript

 
spacemacs para typescript
Spacemacs para Typescript

O también podemos a ver a Spacemacs con los Layers de org y magit (el mejor programa para git)

spacemacs con magit
Spacemacs con Magit
spacemacs con org mode
Spacemacs con Org mode
 
Los Layers no son incompatibles entre ellos así que podemos tener muchos instalados a la vez.
Para saber todos los Layers que hay en Spacemacs podéis verlo aquí.

3 Cómo instalar spacemacs

Para instalar Spacemacs por supuesto hay que tener instalado Emacs y si ya lo tienes y no quieres perder la antigua configuración no olvides hacer una copia del directorio .emacs/ ya que este se va a sobreescribir para instalar Spacemacs. También haz copia por seguridad de tu fichero .emacs. Todo esto lo podemos hacer con el siguiente comando:

mv ~/.emacs.d ~/.emacs.d.back && mv ~/.emacs ~/.emacs.bak

Ahora instalaremos Spacemacs con el siguiente comando:

git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d 

Una vez iniciado Emacs después de esto, nos hará un par de preguntas sobre si queremos el modo evil (con los atajos y forma de trabajar de Vim) o la forma normal de Emacs. Además podemos instalar una versión completa con más Layers por defecto y una versión bootstrap con lo justo y necesario.

4 Configurar spacemacs

Una vez iniciado Spacemacs no crea un fichero de configuración llamado .spacemacs que es muy largo y completo.

Lo interesante está al principio donde podemos indicar los distintos Layers que queramos usar. Además más abajo podemos indicar otros paquetes sueltos que podemos instalar. Esta parte es importante porque si queremos instalar un paquete en concreto no hay que usar el list-packages aunque por defecto aquí se usa paradox-package pero si instalamos algún paquete con alguna de estas formas pero luego no lo escribís en el fichero .spacemacs cuando reinicies Emacs se desinstalará el paquete.

También hay una zona donde podemos indicar algunos paquetes que no queremos que se instalen. Esto por si algún Layer instala algún paquete que por alguna razón no queramos o nos dé problemas.

Aquí os muestro la zona donde se indican los Layers y los paquetes a instalar.

configuración de layers

 

Más abajo hay unas secciones para las configuraciones personales de los distintos paquetes. Explicaré esto más detenidamente en el siguiente post.

5 Mi experiencia con Spacemacs

Mi experiencia con Spacemacs en general ha sido grata y muy satisfactoria. Al principio me tuve que adaptarme un poco a la forma de trabajar de la forma como lo hace Spacemacs y su sistema de configuración y Layers. Si la verdad es que quieres tener un sistema 100% personalizado te aconsejo que sigas con Emacs, pero si no te importa adaptarte un poco al funcionamiento de Spacemacs éste tiene muchas ventajas. Además en general la forma de configurarlo es igual que en Emacs solo que en el fichero .spacemacs tendrás que poner esa configuración en lugares determinados.

La prueba clara de que Spacemacs se ha adaptado muy bien a mí o yo a él es que desde que empecé a usarlo no he vuelto a la configuración básica de Emacs.

6 Para saber más

La mejor forma de para saber más acerca de Spacemacs es visitar su propia página web. Desde ahí podremos acceder a su Github, a su twitter, ver los tutoriales o directamente conectarse al chat de Spacemacs en gitter.

Inclusive, puedes probarlo de manera online.

la web de spacemacs
La web de Spacemacs

7 En un futuro

En un futuro haré mis tutoriales sobre Emacs enfocándome tanto en Emacs como a Spacemacs a la hora de la configuración y además estoy creando una serie de videotutoriales sobre Spacemacs en Youtube que iré anunciando por aquí.

Comparte esto:
Share
admin Written by:

7 Comments

  1. nasciiboy
    octubre 17
    Reply

    justo iba a preguntar sobre quitar el modo evil, y lo pone en el post, je, je, muy bueno,

    en mi lista de deseos para el siguiente post pongo “como modificar los colores/tema”, me has convencido de probarlo

    • maxxcan
      octubre 17
      Reply

      Me alegro de que te haya gustado y sí es bueno que le des una oportunidad. Explicaré más cosas de Spacemacs en adelante.
      Y muchas gracias por comentar

  2. octubre 22
    Reply

    Buenos, esto del Emacs parece no se acaba nunca.
    Gracias por la información, este novato te agradece enormemente el esfuerzo.
    Un saludo.

    • admin
      octubre 22
      Reply

      De nada!

      Con Emacs siempre se está aprendiendo cosas nuevas y eso es lo bonito, además que cuando ya dominas un poco elisp te puedes hacer lo que necesites.

      • octubre 27
        Reply

        Lo que siento es que hayas dejado la serie de iniciación, porque cómo aprendiz que soy estaba muy pendiente de ella.
        Aún no he sido capaz de leer mis email y mis RSS con él 🙁
        Un saludo

        • admin
          noviembre 2
          Reply

          Hola. No, no he dejado esa serie, lo que he dejado es un poco el blog y mis vídeos en youtube porque este año he comenzado muchos proyectos. La verdad es que voy a seguir con cosas básicas, pero no tan básicas, de hecho, lo de usar Emacs como gestor de correo electrónico es mi siguiente post.

          Además, voy a comenzar una serie de videos de 10 minutos en youtube sobre Emacs. Ya avisaré por aquí, y gracias por seguirme

  3. noviembre 14
    Reply

    Muy guapo el post y muy interesante spacemacs

    A ver si me animo de una vez por todas a meterme de lleno en EMACS. 😉

Deja un comentario

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