El mundo de las notas
Cuando digo el mundo de las notas... No, no me refiero a las
calificaciones escolares. Me estoy refiriendo a lo complicado que es
tener un sistema coherente para tomar notas y apuntes con un ordenador
por medio. Llevo tanto tiempo intentando encontrar un sistema de notas
que satisfaga todas mis necesidades que ya he desesperado. Me he
planteado que voy a tener que hacerlo yo, pero antes os quiero
presentar el que estoy utilizando en estos momentos: zetteldeft
.
Para ponernos en antecedentes, en el ejercicio de la psicología
clínica tengo que tomar muchas notas y, también, en algunos casos
generar documentos a partir de ellas. No hay un formato homogéneo,
algunas de las anotaciones tienen forma de texto, otras de tabla
(registros de conducta, índice de anotaciones, resultados de tests
psicológicos etc.), otras de gráfico (perfiles psicológicos,
familiogramas), aunque la mayoría de las anotaciones son de texto.
Pero el decir que son de texto es también resumir mucho, dentro de
estas también las hay de muchos tipos: objetivos, tareas, resumen de
sesión, etc. Además algunas de las anotaciones me gustaría que
estuvieran cifradas. Como digo, he probado varios sistemas, sobre los
mejores candidatos ya he hablado: sobre org-roam
una y dos veces y
sobre TiddlyWiki una y dos veces también. En este artículo, vuelvo a
hablar de Zettelkasten y cómo funciona... aunque con otro paquete de
toma de notas sobre Emacs: zetteldeft
.
Quizá primero deba explicar un poco más por qué no terminan de convencerme las dos herramientas que he mencionado y anticipar que, la que presento hoy por primera vez en el blog, tampoco termina de ajustarse a lo que quiero, pero es más sencilla. Y... si no me sirve (del todo) tampoco ¿por qué la comento?1 Muy sencillo, la herramienta no se ajusta a todo lo que yo necesito, pero a otro usuario con otras necesidades le puede servir. Quizá, también debería explicar un poco más qué hago yo con las notas y cuál es mi proceso:
- Las notas de una sesión o de una conferencia o de lo que sea, las tomo siempre a mano con un buen cuaderno y un buen bolígrafo. Si lo hago con el ordenador por medio, seguro que me pierdo algo mientras pienso qué pulsación de teclas debo utilizar, qué programa lanzar, etc. Para mí, es un distractor más que una herramienta.
- La mayoría de las notas, en multitud de ocasiones, se pueden quedar en el cuaderno, porque son cosas ya sabidas, o que no me aportan nada, o fáciles de encontrar con una mínima búsqueda.
- Las que pasan al sistema de notas suelen escribirse una vez. Es muy raro que haya que editarlas. Por lo tanto, se leen muchas más veces de lo que se escriben y por tanto tiene que ser fácil leerlas: para eso hay que encontrarlas primero, así que el sistema de búsqueda también es importante.
- Alguna información de esas notas, porque atañen a datos personales o estados de salud de personas reales, debe guardarse cifrada. Hasta ahora puedo cifrar archivos completos, pero así pierdo la capacidad de que unas notas se relacionen con otras notas con las que debería mantener enlace. Necesitaría que se pudiera fácilmente cifrar el contenido de la nota y mantener abiertos los enlaces y etiquetas para que entre en las búsquedas.
- Algunas anotaciones son una tabla y/o un gráfico. Hasta ahora me
estoy apañado bien con las tablas de
org-mode
y muchos gráficos los puedo gestionar ensvg
.
Mis conclusiones hasta ahora, que ya he tardado, es que he comprendido que el sistema Zettelkasten es un método magnífico para tomar notas en un ámbito académico o de investigación, con el objeto de relacionar ideas y generar así conocimiento. Yo lo uso para otro fin, y ya sé que no es el objeto para el que fue creado, pero lo estoy usando para investigar, si lo queréis llamar así, cómo piensa y cómo actúa una persona, con el objetivo de comprenderla y poder ayudarla.
Las aplicaciones como org-roam
y otras similares basan su fuerza
en una representación gráfica de las relaciones entre notas, que queda
muy molona, pero que a mí no me aporta nada y establece dependencias
a bases de datos y javascript
que no necesito.
No tiene que ser tan complicado: el sistema básico funcionaba con
hojas de papel con un procedimiento de numeración que las enlazaba. Si
ves una nota marcada con el número 11b2
puedes estar seguro que hay
una tarjeta 11b
, con la que está enlazada y también una tarjeta
11
, con la que estaría enlazada la 11b
. No es necesario mencionar
la numeración backlink, va implícita en el modo de numerar. Este
sistema de numeración es lógica humana, no computacional. En un
ordenador hay que forzar dicho enlace. Por otro lado, el sistema tiene
otras tarjetas cuyo único fin es contener un listado de referencias a
otras notas sobre algún determinado aspecto. Esto se puede suplir, y
se ha suplido, en los sistemas informáticos implementando los tags.
Pero me estoy enrollando mucho, vamos al lío.
El sistema de notas deft
El paquete deft
gestiona notas en un directorio. Puede utilizar tres
formatos de fichero markdown
, txt
y org
. Al utilizarlo llamando
a deft
muestra un buffer con una lista de las notas que tenemos en
el sistema, es decir, cualquier archivo con esas extensiones que se
encuentren en el directorio configurado2.
Podemos filtrar las entradas escribiendo un filtro, valga la rebuznancia:
Hay distintas funciones de búsqueda y configuraciones para ajustarlo a
tus necesidades, como seleccionar el formato del título o del fichero
cuando se crea una nota nueva, etc. Pero eso lo dejo a tu discreción,
en la web encontrarás mucha más información y siempre te puedes
ayudar con apropos
y las opciones que se pueden configurar para
averiguar qué hace cada variable.
Para instalarlo y configurarlo, en mi init.el
tengo el siguiente
código:
(use-package deft :ensure t :bind ("<f5>" . deft) :commands (deft) :config (setq deft-directory "~/Nextcloud/Notes" deft-extensions '("org" "md" "txt") deft-default-extension "org" deft-use-filename-as-title t))
Lo llamo pulsando F5
. La configuración además utiliza el directorio
de notas con un directorio sincronizado por Nextcloud
. Después se
establecen las extensiones de los ficheros de notas que debe leer de
dicho directorio. También se establece la extensión por defecto,
cuando se crea una nueva nota. deft
reconocerá como notas todos los
archivos con esas extensiones que se encuentre en el directorio
establecido3. La última opción es utilizar como título el nombre
del fichero. Otra opción es dejarlo a nil
y obligar a deft
a leer
la primera línea del archivo, que será tomada como el título para la
lista de notas.
Hay, como digo, muchas más opciones para la herramienta. Sin embargo, en nuestro caso, no vamos a profundizar mucho más sobre él, es sencillo de comprender y muy fácil de configurar usar. En su lugar voy a comentar un problema, que me encontré, por mis propias manías, y cómo lo solucioné, por si a alguien más le es útil.
El problema que se me plantaba es que soy de tener varios directorios con notas. Tengo la tendencia, o costumbre, de poner en mis proyectos un directorio de notas y claro, esta herramienta sólo trabaja sobre un directorio, uno en toda su unicidad. Lo que está bien si sólo tienes un cajón de notas en lugar de decenas como tengo yo. Por ello, al final me hice la siguiente función que me facilita cambiar de directorio de notas sobre la marcha. La pongo aquí, por si os sirve de algo:
(defun cambio-deft-dir (dir) "Cambiar de directorio Deft." (interactive "D") (message (format "Se cambia def-directory a: %s" dir)) (setq deft-directory (format "%s" dir)) (deft-refresh))
Es una función muy sencilla: pregunta por un directorio, se lo
facilitamos y establece la variable haciendo un refrescado después por
si hay algún buffer de deft
abierto, para que se actualice y
cambie al compendio nuevo de notas. Ten en cuenta que el refresco, si
cambias a un directorio con muchas —pero que muchas— notas, puede
tardar un rato, apenas unos segundos, pero hay que tener paciencia.
El paquete zetteldeft
El paquete zetteldeft
lo que hace es añadir a deft
las
características fundamentales del método Zettelkasten4. Ya las
comenté más arriba, pero para centrarnos, concretamente los conceptos
clave que se han tenido en cuenta son:
- Una idea en cada nota.
- Conectar diferentes ideas en diferentes notas.
- O mantener un conjunto de enlaces a otras notas.
Con ese resumen de tres puntos se monta todo el sistema sobre tarjetas
en papel, así que no hace falta meterle más rollos al chismático. Y
esos son los tres puntos que le añade el paquete zetteldeft
a
deft
. Este paquete es lo más sencillo y completo que he encontrado
hasta ahora.
Instalación
Como siempre, lo primero va antes. La instalación es sencilla:
(use-package zetteldeft :ensure t :after deft :config (zetteldeft-set-classic-keybindings))
Creo que el código es bastante claro y fácil de entender, así que no
le daré demasiadas vueltas. Sólo recordar que deft
debe instalarse
antes y tiene que estar instalado cuando se instale el paquete.
Se puede dejar todo como viene por defecto, pero en mi caso, también
he añadido un sufijo a la cabecera cuando se crea una nota nueva, para
recordarme que también puedo utilizar etiquetas y he añadido la
siguiente línea en el init.el
, justo después del código de
instalación.
(setq zetteldeft-title-suffix "\n# Tags #")
Al utilizar la configuración clásica de teclas, se activan los
siguientes comandos. No pongo todos, pero sí los que más utilizo. La
combinación básica es C-c d
.
tecla | comando | Acción |
---|---|---|
n |
zetteldeft-new-file |
Crear una nota nueva |
N |
zetteldeft-new-file-and-link |
Crea una nota nueva e inserta enlace |
B |
zetteldeft-new-file-and-backlink |
Crea nota nueva e inserta enlace a la actual |
b |
zetteldeft-backlink-add |
Inserta un backlink en la nota |
i |
zetteldeft-find-file-id-insert |
Inserta enlace |
I |
zetteldeft-find-file-full-title-insert |
Inserta enlace con título completo |
f |
zetteldeft-follow-link |
Abre la nota enlazada |
o |
zetteldeft-find-file |
Abrir una nota5 |
T |
zetteldeft-tag-buffer |
Abre un buffer con una lista de etiquetas |
t |
zetteldeft-avy-tag-search |
Busca notas con una etiqueta |
# |
zetteldeft-tag-insert |
Inserta una etiqueta |
r |
zetteldeft-file-rename |
Renombra el fichero de una nota |
Cuando queremos crear un archivo de nota nuevo, utilizando la
combinación C-c d n
nos pregunta por un título de la nota. Al pulsar
<RET>
generará un archivo con la fecha y hora en formato
%Y-%m-%d-%H%M
y el título que le hayamos facilitado. Cuando
insertemos un enlace, por defecto, utilizará ese formato de fecha para
referirse a la nota y mostrará algo parecido a §2020-04-17-161
,
siempre precedido, como se puede observar de un carácter §
. Dicho
carácter es configurable y se puede cambiar por cualquier otro, pero
no me desagrada y lo he dejado tal cual. He leído por la web que
algunos usuario lo cambian por otro carácter que puedan escribir ellos
fácilmente. A mí no me parece difícil pulsar AltGr-W
6.
Como decía, el sistema desarrollado y utilizado por Niklas Luhmann
durante toda su carrera no tiene ningún método gráfico al uso, a no
ser que te pongas a dibujar en un papel, tarjeta a tarjeta uniéndolas
con líneas. Pero la informática nos permite hacerlo de manera
automágica, y sí, con este sistema también se puede obtener una
visualización gráfica del mismo, pero de forma indirecta. Si tienes
instalado graphviz
puedes llamar al comando
zetteldeft-org-graph-search
. Dicho comando pide una nota desde la
que se comenzará el dibujo y creará un bloque de código tal que:
#+begin_src dot :file ./graph.pdf :cmdline -Kfdp -Tpdf graph { ... } #+end_src
una vez que lo genera tienes la oportunidad de modificarlo y ponerlo
bonito. Cuando lo he usado he cambiado algunos parámetros, como la
salida, que prefiero que sea a svg
. Pero eso es una cuestión de
gustos. No suelo hacer mucho caso de las gráficas de ese estilo, ni
siquiera a los mapas mentales que me hacía hace un tiempo... al
final no me aportan nada y tengo la tendencia a ver relaciones que no
hay cuando algo está dibujado cerca de otra cosa. Muchas veces hay
cosas juntas que se acomodan por razones gráficas, no conceptuales y
eso me distrae, prefiero tener el mapa en la cabeza y no en papel, a
no ser que lo que represente el papel esté a escala del espacio real,
pero del espacio real, no del espacio conceptual.
Etiquetas
Hasta ahora he hablado de los dos primeros pilares del método
Zettelkasten: las notas atómicas de sólo un tema por tarjeta y la
interrelación entre las tarjetas. Sólo nos falta conseguir nuestras
listas índices de tarjetas relacionadas por algún motivo. Para esto el
sistema provee las etiquetas o tags. Una etiqueta comienza por un
carácter #
. Al escribir tags en nuestras notas podemos agruparlas,
pero no tengáis prisa por poner etiquetas. Poner una etiqueta es un
arma de doble filo. Las etiquetas sirven para agrupar cosas
semejantes, pero son el origen también de los prejuicios y dificultan
que pienses sin esos prejuicios sobre cualquier tema. En tu mente,
cualquier cosa se convierte en su etiqueta.
Sin más elucubraciones, si utilizamos la combinación C-c d T
o el
comando zetteldeft-tag-buffer
, nos abre el siguiente buffer:
Hay que tener mucho cuidado con la combinación de teclas C-c d
,
porque C-c C-d
en deft
se utiliza para borrar una nota, así que si
estás en el buffer deft
, ten cuidado con lo que pulsas.
Afortunadamente, pregunta si realmente queremos borrarlo y podemos
reaccionar. El que avisa no es traidor, es avisador.
Para seleccionar una etiqueta podemos utilizar la combinación C-c d
t
o el comando zetteldeft-avy-tag-search
, que utiliza el modo avy
para saltar directamente mediante letras marcadas por etiquetas en
rojo:
Si lo que estamos buscando es la etiqueta #customize
, sólo tenemos
que pulsar la tecla a
para abrir una lista de notas con dicha
etiqueta.
Otra opción es abrir deft
y teclear la palabra que estemos
buscando. Por ejemplo:
para conseguir la vista anterior, he tecleado custom
en el buffer
deft
. Al ir sin el símbolo #
encuentra no sólo aquellas notas que
tengan la etiqueta customize
, sino también todas aquellas donde
dicha cadena esté presente. Como podéis suponer, el utilizar etiquetas
con otros caracteres especiales que no sea #
pueden también buscarse
con este método y nos abre el abanico de tener diferentes tipos de
etiquetas.
Conclusiones
El sistema de tomar notas Zettelkasten es sencillo y simple. Pero para funcionar necesita constancia. Su autor dedicaba varias horas de su trabajo, diariamente, para mantenerlo: hacer anotaciones, enlazar unas notas con otras, hacer listas de notas relacionadas, almacenarlas, ordenarlas... Cuando escribía algún artículo o libro las consultaba, seguía sus enlaces, sus referencias y le eran de utilidad. Pero es un trabajo arduo. Claro, que su sistema estaba montado en papel y los ordenadores nos sirven de ayuda... pero veo muchas pajas mentales en sistemas que pretenden implementarlo, más preocupados de la vistosidad que de la utilidad.
Para mí zetteldeft
es la implementación completa y sencilla de un
método sencillo y completo para tomar notas, y que funciona
perfectamente y sin aspavientos. Me permite tener mis anotaciones y
además, como soy así de especial, mis anotaciones por proyecto,
gracias a la función que puse más arriba. Antes he utilizado otros
sistemas, como el propio deft
u org-roam
, en algunos casos he
convertido las notas para adaptarlas a zetteldeft
, en otros me he
dejado llevar por la holgazanería y las he dejado como
estaban... sobre todo si no las necesito para el trabajo diario.
Footnotes:
Seguro que alguno ya se lo estará preguntando.
Por defecto es ~/.deft
También se le puede decir que recorra recursivamente subdirectorios, si las tenemos separadas de tal manera.
Ya he hablado sobre el método en cuestión y hay mucha información mucho más completa y mejor explicado de lo que lo puedo hacer yo.
Funciona como el comando find-file
, pero sólo busca en el
directorio de notas.
¡Ojo! AltGr-W
que es §
, no AltGr-w
, que es ſ
.
Comentarios