Método Zettelkasten con Emacs y Zetteldeft (compatible con Zettlr)
Como comenté en este artículo de Colaboratorio.net, el método Zettelkasten puede ser muy útil para llevar un sistema de notas. Para esto llevo algún tiempo utilizando Zettlr como herramienta principal.
Últimamente me hice bastante amigo de Emacs y decidí utilizar una especie de extensión llamada Zetteldeft y que con alguna pequeña configuración puede ser perfectamente compatible con Zettlr u otras aplicaciones similares.
Zetteldeft es una buena manera de iniciar un sistema de notas de este tipo ya que maneja jerarquías planas entre las notas, pero estas están interrelacionadas mediante etiquetas y enlaces.
A diferencia de otros sistemas como org-roam, Zetteldeft no utiliza una base de datos externa, esto, más allá de sus ventajas e inconvenientes, es excelente para aquellos usuarios de Emacs que quieran un zettelkasten “liviano”.
Para empezar, doy por sentado de los conocimientos mínimos de Emacs por parte del lector, que en general suelen estar bastante por encima de los mios propios.
1. Instalar Deft
Lo primero es instalar Deft, ya que este será la puerta de entrada a nuestras notas.
(use-package deft
:init
(setq deft-directory "~/nextcloud/notes/zettelkasten")
(setq deft-extensions '("md" "org"))
(setq deft-use-filename-as-title t)
(setq deft-use-filter-string-for-filename t)
(setq deft-recursive t)
:bind
("<f5>" . deft)
:ensure t)
(setq-default truncate-lines 1)
Estas líneas permiten la instalación de deft y configuran su directorio por defecto, que será donde estén nuestras notas alojadas. Además establece la tecla F5 para ejecutarlo y la linea final para que corrija algún defecto estético.
2. Instalar Zetteldeft
Seguidamente instalaremos Zetteldeft. Es decir, esta extensión de Deft que nos ofrece una manera sencilla y rápida de crear las notas y los enlaces entre ellas.
(use-package zetteldeft
:ensure t
:after deft
:config (zetteldeft-set-classic-keybindings))
Zetteldeft requiere de un directorio temporario y que por defecto se encuentra en .emacs/zetteldeft/tmp.
3. Configuración para manejar archivos Markdown
En mi caso decidí utilizar el sistema de notas que ya venía utilizando con Zettlr y que están en formato Markdown.
Para hacer que Zetteldeft sea compatible con Markdown y con el tipo de enlaces que maneja Zettlr se deben hacer los siguientes cambios:
- Manera de nombrar e identificar los archivos: Mis notas empiezan con un número que no es mas que la fecha y hora sin separadores entre las cifras, y es usada como identificador único (2021-02-21 11:20:52 –> 20210221112052).
- Modificar la expresión regular para que Zetteldeft identifique el número identificador: La expresión regular que indico es la que corresponde a la manera que tengo de identificar las notas. Esta expresión regular debe adaptarse a cada caso, pero de esta manera me funciona perfecto.
- Cambiar los identificadores de enlaces [ y ].
- Cambiar el caracter identificador del título de la nota (#).
Esta configuración puede realizarse asi:
F5
M-x customize
y en el cajón de búsqueda: Zetteldeft
Finalmente cambiar los valores por lo que queramos. En mi caso:
En mi caso los cambios se reflejan en mi archivo de configuración de esta manera:
(custom-set-variables
'(zetteldeft-id-format "%Y%m%d%H%M%S")
'(zetteldeft-id-regex "20[0-9]\\{4\\}\\([0-9]\\{2,\\}\\)\\{4\\}")
'(zetteldeft-link-indicator "[[")
'(zetteldeft-link-suffix "]]")
'(zetteldeft-title-prefix "# "))
Resultado final
Aquí les dejo las teclas para comenzar a trabajar con las notas y unas capturas:
Teclas | Función | Nota |
---|---|---|
F5 | deft | Inicio |
C-c d D | zetteldeft-deft-new-search | |
C-c d R | deft-refresh | |
C-c d s | zetteldeft-search-at-point | |
C-c d c | zetteldeft-search-current-id | |
C-c d f | zetteldeft-follow-link | Sigue un enlace |
C-c d F | zetteldeft-avy-file-search-ace-window | |
C-c d l | zetteldeft-avy-link-search | |
C-c d t | zetteldeft-avy-tag-search | Sigue una etiqueta |
C-c d T | zetteldeft-tag-buffer | |
C-c d i | zetteldeft-find-file-id-insert | |
C-c d I | zetteldeft-find-file-full-title-insert | Crea un enlace en la nota |
C-c d o | zetteldeft-find-file | |
C-c d n | zetteldeft-new-file | Crea una nota nueva |
C-c d N | zetteldeft-new-file-and-link | |
C-c d r | zetteldeft-file-rename | |
C-c d x | zetteldeft-count-words |
Espero que te haya resultado interesante.
¡Saludos!
Referencias
Github - Zetteldeft. Introducción
Imagen de StartupStockPhotos de Pixabay
All posts are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license.