bullet journal vim cal-bash-utils

index | about | archive | charlas | docs | links

dot | git | img | plt | tty | uml

Yendo del texto plano al papel

Hace años que pruebo diferentes metodologías para registrar tareas, si bien existen diferentes aplicaciones y probé varias, siempre me resultó más fácil recordarlas y tener una visión global al manejarlas en papel.

Si bien durante varios años usé org-mode 1, hace tiempo que estoy registrando los eventos y tareas que tienen fecha en un archivo de texto plano ~/.calendar 2 y luego mediante algunos scripts y el uso de pcal los puedo convertir a papel para usar en esos momentos offline mientras disfruto de un café y despejo mi mente.

Bullet Journal

Tuve varios intentos de implementar Bullet Journal 3 en papel, creo que se debe a que no tengo tanto tiempo libre para garabatear, un poco de inconstancia y que en parte me cuesta despegar del teclado.

Hace unos días descubrí Plain Text Journaling 4, una implementación en texto plano usando vim 5 y quedé maravillado.

PoC

Mirando un poco el post vi que podía aprovechar la estructura de directorio que ya uso en mi jrnl 6 journal


# tree -L 1 -d ~/.jrnl
/home/osiris/.jrnl
├── 2017
├── 2018
├── 2019
├── 2020
├── 2021
├── 2022
└── 2023

8 directories

Para probar el concepto, abrí el archivo de este mes, vi ~/.jrnl/2023/06.jrnl y e ingresé el calendario mediante el comando r! cal


     June 2023
Su Mo Tu We Th Fr Sa
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30


WEEK 1 ---------------

× done test
· todo test
→ move test
∘ event test
‐ note test

highlight syntax

El siguiente paso era contar con resaltado de sintaxis, definiendo en ~/.vimrc la siguiente configuración:

augroup JournalSyntax
  autocmd!
  autocmd BufReadPost *.jrnl set filetype=journal
  autocmd BufReadPost *.jrnl syntax match JournalAll /.*/
  autocmd BufReadPost *.jrnl syntax match JournalDone /^× .*/
  autocmd BufReadPost *.jrnl syntax match JournalTodo /^· .*/
  autocmd BufReadPost *.jrnl syntax match JournalEvent /^∘ .*/
  autocmd BufReadPost *.jrnl syntax match JournalNote /^‐ .*/
  autocmd BufReadPost *.jrnl syntax match JournalMoved /^> .*/
  autocmd BufReadPost *.jrnl syntax match JournalHeader /^\<\u\+\>.*/
  autocmd BufReadPost *.jrnl highlight JournalAll    ctermfg=7
  autocmd BufReadPost *.jrnl highlight JournalTodo   ctermfg=1
  autocmd BufReadPost *.jrnl highlight JournalHeader ctermfg=2
  autocmd BufReadPost *.jrnl highlight JournalDone   ctermfg=8
  autocmd BufReadPost *.jrnl highlight JournalEvent  ctermfg=3
  autocmd BufReadPost *.jrnl highlight JournalMoved  ctermfg=5
  autocmd BufReadPost *.jrnl highlight JournalNote   ctermfg=5
  autocmd BufReadPost *.jrnl highlight VertSplit     ctermfg=0 ctermbg=0
augroup END

snippet to bullets

Y para agilizar el ingreso de los diferentes bullets adapté mis snippets agregand a ~/.vim/snippets/_.snippets

snippet todo
	·
snippet done
	×
snippet note
	‐
snippet event
	∘
snippet move
	→

Entonces basta con tipear done y presionar TAB para obtener × :) Ahora al editar con vim un archivo *.jrnl tiene toda la onda!

cal2jrnl-highlight.png

automate bullet journal from calendar

Se me ocurrió aprovechar que ya tengo registradas las tareas y eventos en ~/.calendar, solo debía agregar los bullets y escribir algún script que se ocupe de automatizar la escritura de cada mes en formato Bullet Journal ;)

month

El primer script fue caljmonth 7 que se ocupa de obtener las tareas y eventos del mes actual y también acepta el número de cualquier otro mes guardando un archivo ~/.jrnl/YYYY/MM.jrnl y para visualizar este archivo el comando es calvmonth 8.

cal2jrnl-calvmonth.png

months

En muchas ocasiones conviene visualizar más de un mes, es decir el actual y algunos más y para esto esta el comando calvmonths.

cal2jrnl-calvmonths.png

year

Finalmente si necesito visualizar el mes actual hasta que termine el año, el comando que se ocupa de generar los archivos de cada mes es caljyear 9 y para visualizar usar calvyear 10

cal2jrnl-calvyear.png

texto plano

Una vez más, utilizar archivos de texto plano es una gran solución, ya que es fácil de integrar y convertir, rápido de adaptar a cualquier situación, me tomó menos de 1 día crear los scripts y ya estoy disfrutando la solución y seguramente con el tiempo iré incorporando mejoras en cal-bash-utils 11

ChangeLog

  • 2023-06-24 20:00 agregar footnotes a caljmonth, calvmonth, caljyear y calvyear en bullet journal vim cal-bash-utils
  • 2023-06-22 00:58 agregar bullet journal vim cal-bash-utils

Notas al pie de página: