From d1720e5ac8c43bab9ca2676b6e78e42e32a09e31 Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Thu, 13 Feb 2020 02:03:55 +0100 Subject: vim: Modify zettel helpers for revised system Instead of the zettelkasten system for vim inspiried by the blog post I initially followed I will be using a more structured approach based on bullet journaling. --- .vim/autoload/zettel.vim | 33 +++++++++++++++++---------------- .vim/init.vim | 2 ++ 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/.vim/autoload/zettel.vim b/.vim/autoload/zettel.vim index 381b8e6..87fb32c 100644 --- a/.vim/autoload/zettel.vim +++ b/.vim/autoload/zettel.vim @@ -3,7 +3,7 @@ " " ref: https://vimways.org/2019/personal-notetaking-in-vim/ -let g:zettel_dir = '~/wiki' +let g:zettel_dir = $HOME.'/wiki' let g:zettel_ext = '.md' func! zettel#is_zettel(fpath) @@ -12,26 +12,27 @@ func! zettel#is_zettel(fpath) endfunc func! zettel#set_filetype() - silent exec 'setlocal filetype=zettel.' . &filetype + silent exec 'setlocal filetype=zettel' endfunc func! zettel#edit(...) - let l:sep = '' - if len(a:000) > 0 - " argument is a title for the note - let l:sep = '-' - endif let l:fname = expand(g:zettel_dir) . '/' - \ . strftime('%Y-%m-%dT%H-%M') - \ . l:sep . join(a:000, l:sep) . g:zettel_ext + \ . strftime('%Y') . '/' + \ . tolower(strftime('%m-%b')) . g:zettel_ext silent exec 'e ' . l:fname +endfunc - " if len(a:000) > 0 - " silent exec 'normal gg0\=strftime("%Y-%m-%d %H:%M")\ ' - " \ . join(a:000) - " \ . '\\G' - " else - " silent exec 'normal gg0\=strftime("%Y-%m-%d %H:%M")\\\G' - " endif + +func! zettel#newday() + let linenr = line('$') + " backtrace to last non-empty line + while empty(getline(linenr)) + let linenr -= 1 + endwhile + let e = append(linenr, ['', '---', '', strftime('# %d/%m/%y')]) + if !e + let &modified = 1 + endif + silent execute 'normal ' . line('$'). 'gg2o' endfunc diff --git a/.vim/init.vim b/.vim/init.vim index 879753a..14fad32 100644 --- a/.vim/init.vim +++ b/.vim/init.vim @@ -283,4 +283,6 @@ command! -bang DayMode call daymode#switch(0) command! -range Retab ,call retab#do() command! NumberToggle call numbertoggle#switch() command! Alternate call alternate#alternate() + command! -nargs=* Zet call zettel#edit() +command! ZetDay call zettel#newday() -- cgit 1.4.1