Emacs Doom Capítulo 1: Treemacs, Projectile y EShell
En el capítulo anterior se detalla el inicio rápido de esta configuración dogmática que es Doom Emacs, ahora profundizaremos en el uso de tres herramientas incluidas en esta distribución.
Como somos animales de costumbres, suele ser bueno tener espacios cuyo comportamiento sea consistente; la administración de ese trabajo (documentos de texto, programas de configuración, pequeños y grandes programas creados) también debería tener cierta consistencia. Como Emacs es un editor de texto tan hackeable, hay quienes escriben paquetes para que su utilización sea semejante a los editores más modernos.
Durante estas entradas, utilizaré los atajos por defecto de Emacs y entre paréntesis los que corresponden a EViL. Por ejemplo, para abrir un archivo el atajo es C-x f
que significa presionar la tecla Control junto a x y luego, la tecla f (con EViL, sería SPC f .
o SPC .
donde SPC es la tecla espacio). En Doom Emacs, cuando se presiona C-x
o C-c
(SPC
) se abre un pequeño buffer en la zona inferior de la ventana que permite visualizar las siguientes teclas asociadas a este atajo, mostrando en azul los comandos, y en violeta secuencias que se pueden encadenar (simbolizadas también por un + como prefijo).
En la presente entrada, las usuarias podrán aprender a usar tres herramientas versátiles incluidas en Doom Emacs, la primera de ellas un gestor de proyectos llamado Projectile.
Projectile
Es un gestor de proyectos en los que los directorios marcados por la usuaria son tratados con accesos más directos (por ejemplo usando treemacs). Para estos efectos, la usuaria puede asociar sus proyectos por medio del comando M-x projectile-discover-in-directory
(donde M es la tecla Meta o Alt, también se puede presionar Alt gr para que de inmediato se tome como M-x
) y luego seleccionando un directorio que contenga los proyectos, así Projectile lo anexará a sus entradas marcadas.
Projectile reconoce los contenidos para un directorio como proyectos si contienen archivos relacionados a git, mercurial, darcs, y bazaar. Si se quiere que reconozca un directorio como proyecto, basta con que ese directorio contenga un archivo vacío llamado .projectile
.
Luego de marcar los directorios que la usuaria quiere tener asignados como proyecto, puede acceder a la lista presionando C-c p p
(SPC p p
) lo que puede tratar para seleccionar directamente archivos en los que esté trabajando.
Así mismo, se pueden especificar un conjunto de directorios en los que
projectile puede buscar, si la usuaria así lo estima, puede modificar en su configuración personal accediendo al archivo config.el
en el directorio .doom.d
(el atajo para esto es C-c f c
o SPC f p
), ingresando lo siguiente:
(setq projectile-project-search-path ("/Directorio1" "/Directorio2"))
Y luego actualizar mediante M-x projectile-discover-in-path
, lo que agregará nuevos proyectos en dichos directorios.
Si bien trabajar en proyectos definidos es siempre útil, también se puede querer visualizar los directorios en los que se está trabajando; una excelente herramienta para esto es Treemacs.
Treemacs
Es un paquete que da visualización a los directorios de trabajo, o a proyectos que uno desee agregar directamente, se puede acceder presionando <f9>
o invocando M-x treemacs
(SPC o p
). Inmediatamente se abrirá un buffer de tamaño 35 caracteres por defecto, que permitirá navegar por los directorios o proyectos que la usuaria haya destacado para su configuración, mostrando la jerarquía de los mismos con fuentes vistosas e íconos.
Finalmente, si se llega a necesitar usar la línea de comandos, Emacs posee un emulador de terminal integrado, llamado EShell.
EShell
Emulador de terminal al que se puede acceder con M-x eshell
(SPC o e
), como los objetivos de estas entradas no son analizar en profundidad el uso de la shell de Emacs, me remito a decir que es versátil para cuando la usuaria quiere ahorrar tiempo trabajando en su proyecto y (en vez de abrir un nuevo programa) mantiene todo su flujo de trabajo en Emacs, pudiendo cambiar rápidamente entre el archivo en que trabaja y la terminal abierta en Emacs.