vim-markdown-wiki is a Vim plugin which eases the navigation between files in a personnal wiki based on markdown
Add the line Bundle 'mmai/vim-markdown-wiki'
in your .vimrc if you use Vundle or a similar plugin manager
Or copy the after/ftplugin/markdown.vim file into the $HOME/.vim/after/ftplugin/ directory
With the default key mappings :
Link creation:
- Hit the ENTER key when the cursor is on a text between brackets :
[a title]
- The link will be created
[a title](a-title.md)
and the corresponding file will be loaded in the buffer.
Navigation:
- Hit the ENTER key when the cursor is on a wiki link
- The corresponding link file is loaded in the current buffer.
- Hit Leader key + ENTER to go back
You can set a shortcut to open links in a new split, see below
Backlinks:
This feature is a work in progress and needs polishing. It requires NeoVim with the Telescope plugin and works only with files on a git repo : the commands search files in the git repository containing the current document.
:MdwiBacklinks
: list the documents linked to the active file:MdwiFriends
: if the cursor in on a link, list the documents linked to the target of the link
Create or go to link :
nnoremap <CR> :MdwiGotoLink
Open link in a new split with SPACE + ENTER :
nnoremap <Space><CR> <C-w>v:MdwiGotoLink<CR>
Return to previous page :
nnoremap <Leader><CR> :MdwiReturn
You can override the default format of the titles by defining a function MdwiWriteTitle in your vim config file.
The default is :
function! MdwiWriteTitle(word)
return 'normal!\ a'.escape(a:word, ' \').'\<esc>yypv$r=o\<cr>'
endfunction
which write the titles like this :
New page
========
Here is an example of a custom function which uses the #
style instead of underlining, and adds a timestamp before the title :
function! MdwiWriteTitle(word)
return 'normal!\ a# '.strftime('%c').' - '.escape(a:word, ' \').'\<esc>'
endfunction
the result is something like this, depending on your locale :
# Thu 10 Dec 2018 08:44:37 CET - New page