Journaling using Nix, Vim and coreutils
12 days ago
- #journaling
- #productivity
- #vim
- The journaling system uses {neo,}vim, coreutils, and dateutils, inspired by Ryder Caroll's Bullet Journal method.
- Journal entries are organized by year and month, with each month having its own file (e.g., '01' for January).
- A monthly calendar is inserted using ':read !cal -m' in vim.
- Entries are structured week by week, with tasks prefixed by 'todo' or 'done'.
- Abbreviations in vim (e.g., ':iabbrev todo ·') replace verbose signifiers with symbols for cleaner entries.
- Vim's sorting functionality ('vip' and ':sort') organizes tasks by their status (todo, done, etc.).
- Syntax highlighting is added to distinguish between different types of entries (todo, done, event, note, moved).
- Habit tracking can be incorporated with simple headers and an awk script to calculate monthly expenditures.
- Reflection is facilitated by opening multiple months side-by-side in vim ('vim -O journal/2023/0{1,2,3}').
- Friction is reduced by using dateutils to open the current month or a range of months around the current date.
- A sample vimrc and nix flake file are provided for easy setup.