journaling system cobbled together with nix, vim, coreutils
1" insert fancy signifiers with abbrevs 2iabbrev todo · 3iabbrev done × 4 5" select the task list and hit `gq` to group by status 6" selecting clever status symbols can determine the ordering of tasks 7set formatprg=sort\ -V 8 9" syntax highlighting 10augroup JournalSyntax 11 autocmd! 12 autocmd BufReadPost * set filetype=journal 13 14 autocmd BufReadPost * syntax match JournalAll /.*/ " captures the entire buffer 15 autocmd BufReadPost * syntax match JournalDone /^×.*/ " lines containing 'done' items: × 16 autocmd BufReadPost * syntax match JournalTodo /^·.*/ " lines containing 'todo' items: · 17 autocmd BufReadPost * syntax match JournalEvent /^o.*/ " lines containing 'event' items: o 18 autocmd BufReadPost * syntax match JournalNote /^- .*/ " lines containing 'note' items: - 19 autocmd BufReadPost * syntax match JournalMoved /^>.*/ " lines containing 'moved' items: > 20 autocmd BufReadPost * syntax match JournalHeader /\<\u\+\>/ " words containing capitals 21 22 autocmd BufReadPost * highlight link JournalAll Noise 23 autocmd BufReadPost * highlight link JournalHeader Noise 24 autocmd BufReadPost * highlight link JournalDone Noise 25 autocmd BufReadPost * highlight link JournalMoved Noise 26 autocmd BufReadPost * highlight JournalEvent ctermfg=6 " cyan 27 autocmd BufReadPost * highlight JournalMoved ctermfg=5 " pink 28 autocmd BufReadPost * highlight JournalNote ctermfg=3 " yellow 29 autocmd BufReadPost * highlight VertSplit ctermfg=0 ctermbg=0 " hide vert splits 30augroup END 31 32augroup JournalHideUIElements 33 autocmd! 34 " hide junk 35 autocmd VimEnter * set laststatus=0 36 autocmd VimEnter * set noruler nonumber nocursorline nocursorcolumn norelativenumber 37 38 " pin scrolling 39 autocmd VimEnter * set scrollbind 40 41augroup END 42 43syntax on