diff --git a/autoload/vimwiki/diary.vim b/autoload/vimwiki/diary.vim index 278da34..c55b3eb 100644 --- a/autoload/vimwiki/diary.vim +++ b/autoload/vimwiki/diary.vim @@ -170,21 +170,25 @@ function! s:format_diary() endfunction +" The given wiki number a:wnum is 1 for the first wiki, 2 for the second and so on. This is in +" contrast to most other places, where counting starts with 0. When a:wnum is 0, the current wiki +" is used. function! vimwiki#diary#make_note(wnum, ...) - if a:wnum > vimwiki#vars#number_of_wikis() - echomsg 'Vimwiki Error: Wiki '.a:wnum.' is not registered in g:vimwiki_list!' + if a:wnum == 0 + let wiki_nr = vimwiki#vars#get_bufferlocal('wiki_nr') + else + let wiki_nr = a:wnum - 1 + endif + + if wiki_nr >= vimwiki#vars#number_of_wikis() + echomsg 'Vimwiki Error: Wiki '.wiki_nr.' is not registered in g:vimwiki_list!' return endif " TODO: refactor it. base#goto_index uses the same - if a:wnum > 0 - let idx = a:wnum - 1 - else - let idx = 0 - endif - call vimwiki#path#mkdir(vimwiki#vars#get_wikilocal('path', idx). - \ vimwiki#vars#get_wikilocal('diary_rel_path', idx)) + call vimwiki#path#mkdir(vimwiki#vars#get_wikilocal('path', wiki_nr). + \ vimwiki#vars#get_wikilocal('diary_rel_path', wiki_nr)) let cmd = 'edit' if a:0 @@ -202,7 +206,7 @@ function! vimwiki#diary#make_note(wnum, ...) let link = 'diary:'.vimwiki#diary#diary_date_link() endif - call vimwiki#base#open_link(cmd, link, s:diary_index(idx)) + call vimwiki#base#open_link(cmd, link, s:diary_index(wiki_nr)) endfunction @@ -297,8 +301,7 @@ function! vimwiki#diary#calendar_action(day, month, year, week, dir) endif endif - " XXX: Well, +1 is for inconsistent index basing... - call vimwiki#diary#make_note(vimwiki#vars#get_bufferlocal('wiki_nr')+1, 0, link) + call vimwiki#diary#make_note(0, 0, link) endfunction diff --git a/plugin/vimwiki.vim b/plugin/vimwiki.vim index 3f876db..50405de 100644 --- a/plugin/vimwiki.vim +++ b/plugin/vimwiki.vim @@ -266,14 +266,14 @@ command! -count=1 VimwikiTabIndex command! -count=1 VimwikiDiaryIndex \ call vimwiki#diary#goto_diary_index(v:count1) command! -count=1 VimwikiMakeDiaryNote - \ call vimwiki#diary#make_note(v:count1) + \ call vimwiki#diary#make_note(v:count) command! -count=1 VimwikiTabMakeDiaryNote - \ call vimwiki#diary#make_note(v:count1, 1) + \ call vimwiki#diary#make_note(v:count, 1) command! -count=1 VimwikiMakeYesterdayDiaryNote - \ call vimwiki#diary#make_note(v:count1, 0, + \ call vimwiki#diary#make_note(v:count, 0, \ vimwiki#diary#diary_date_link(localtime() - 60*60*24)) command! -count=1 VimwikiMakeTomorrowDiaryNote - \ call vimwiki#diary#make_note(v:count1, 0, + \ call vimwiki#diary#make_note(v:count, 0, \ vimwiki#diary#diary_date_link(localtime() + 60*60*24)) command! VimwikiDiaryGenerateLinks @@ -341,7 +341,7 @@ function! s:build_menu(topmenu) execute 'menu '.a:topmenu.'.Open\ index.'.norm_path. \ ' :call vimwiki#base#goto_index('.idx.')' execute 'menu '.a:topmenu.'.Open/Create\ diary\ note.'.norm_path. - \ ' :call vimwiki#diary#make_note('.idx.')' + \ ' :call vimwiki#diary#make_note('.(idx+1).')' endfor endfunction