50 lines
1.4 KiB
VimL
50 lines
1.4 KiB
VimL
function! zkvim#create_link(zk_title, zk_id)
|
|
return '[' . a:zk_title . ']' . '(' . a:zk_id . ')'
|
|
endfunction
|
|
|
|
function! zkvim#create_append_link_command(zk_title, zk_id)
|
|
return 'normal! a' . zkvim#create_link(a:zk_title, a:zk_id)
|
|
endfunction
|
|
|
|
function! zkvim#get_new_zettel_id()
|
|
let zk_cmd = 'NOZKEDIT=true zk new'
|
|
return system(zk_cmd)
|
|
endfunction
|
|
|
|
function! zkvim#get_zettel_id(selection)
|
|
return trim(matchstr(a:selection, '[0-9]*\ ')) " TODO: Find out why this requires a space at the end
|
|
endfunction
|
|
|
|
function! zkvim#get_zettel_title(selection)
|
|
return trim(matchstr(a:selection, '#\zs.*\ze'))
|
|
endfunction
|
|
|
|
function! zkvim#znew()
|
|
let zk_filename = zkvim#get_new_zettel_id()
|
|
execute 'edit ' . zk_filename
|
|
endfunction
|
|
|
|
function! zkvim#zinsertnew(zk_title)
|
|
let zk_filename = zkvim#get_new_zettel_id()
|
|
let zk_id = zkvim#get_zettel_id(zk_filename)
|
|
execute zkvim#create_append_link_command(a:zk_title, zk_id)
|
|
execute 'write'
|
|
execute 'edit ' . zk_filename
|
|
execute 'normal! a# ' . a:zk_title
|
|
endfunction
|
|
|
|
function! zkvim#sink(selection) abort
|
|
let zk_id = zkvim#get_zettel_id(a:selection)
|
|
let zk_title = zkvim#get_zettel_title(a:selection)
|
|
execute zkvim#create_append_link_command(zk_title, zk_id)
|
|
endfunction
|
|
|
|
function! zkvim#zsearch()
|
|
let zk_cmd = 'zk list'
|
|
let fzf_options = #{
|
|
\source: zk_cmd,
|
|
\sink: function('zkvim#sink')}
|
|
|
|
call fzf#run(fzf_options)
|
|
endfunction
|