Skip to content
Vim plugin wich eases links manipulation and navigation in markdown pages
Vim script
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.


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]( and the corresponding file will be loaded in the buffer.


  • 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

Change key mappings in your vim config file

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

Customize new pages titles

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>'

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>'

the result is something like this, depending on your locale :

# Thu 10 Dec 2018 08:44:37 CET - New page

You can’t perform that action at this time.