Awesome Open Source
Awesome Open Source


Join the chat at


Using the markdown-preview.vim plugin, you can preview Markdown in real-time with a web browser.

This plugin needs your Vim to support Python 2 / Python 3 features. Tested on Windows / Ubuntu 14 / Mac OS X.

Note: PLEASE USE markdown-preview.nvim INSTEAD


Markdown preview


Typeset math



With vim-plug:

Add Plug 'iamcco/markdown-preview.vim' to the vimrc or init.vim file and type :PlugInstall.

Or with MathJax support for typesetting math:

Plug 'iamcco/mathjax-support-for-mkdp'
Plug 'iamcco/markdown-preview.vim'



    " Open preview window in markdown buffer

    " Close the preview window and server

When MarkdownPreview command can't open the preview window, you can use the MarkdownPreviewStop command before using MarkdownPreview command.

Default Setting:

    let g:mkdp_path_to_chrome = ""
    " Path to the chrome or the command to open chrome (or other modern browsers).
    " If set, g:mkdp_browserfunc would be ignored.

    let g:mkdp_browserfunc = 'MKDP_browserfunc_default'
    " Callback Vim function to open browser, the only parameter is the url to open.

    let g:mkdp_auto_start = 0
    " Set to 1, Vim will open the preview window on entering the Markdown
    " buffer.

    let g:mkdp_auto_open = 0
    " Set to 1, Vim will automatically open the preview window when you edit a
    " Markdown file.

    let g:mkdp_auto_close = 1
    " Set to 1, Vim will automatically close the current preview window when
    " switching from one Markdown buffer to another.

    let g:mkdp_refresh_slow = 0
    " Set to 1, Vim will just refresh Markdown when saving the buffer or
    " leaving from insert mode. With default 0, it will automatically refresh
    " Markdown as you edit or move the cursor.

    let g:mkdp_command_for_global = 0
    " Set to 1, the MarkdownPreview command can be used for all files,
    " by default it can only be used in Markdown files.

    let g:mkdp_open_to_the_world = 0
    " Set to 1, the preview server will be available to others in your network.
    " By default, the server only listens on localhost (

Key Mapping:

By default this plugin has no mapping: if you want to have your own mappings, you can map the keys to <Plug>MarkdownPreview for opening the Markdown preview window and map keys to <Plug>StopMarkdownPreview for closing the preview window.

Examples for mapping the F8 key to open Markdown preview window and F9 key to close preview window:

" for normal mode
nmap <silent> <F8> <Plug>MarkdownPreview
" for insert mode
imap <silent> <F8> <Plug>MarkdownPreview
" for normal mode
nmap <silent> <F9> <Plug>StopMarkdownPreview
" for insert mode
imap <silent> <F9> <Plug>StopMarkdownPreview

For OS X users, you can set the g:mkdp_path_to_chrome as below (if you use Chrome):

let g:mkdp_path_to_chrome = "open -a Google\\ Chrome"
" or
let g:mkdp_path_to_chrome = "/Applications/Google\\\\ Chrome"

See issue #1 for details.


Q: The Firefox preview window didn't close when leaving the Markdown file in Vim.

A: If you want the plugin to auto-close the preview window in Firefox, you have to do some configuration:

  1. Open Firefox.
  2. Type about:config in the address bar and press the Enter key.
  3. Search for dom.allow_scripts_to_close_windows and set its value to true.

You have to know what will happen when you make the above changes.


  • 2017/07/16: Add g:mkdp_open_to_the_world option.
  • 2016/11/19: MathJax support with mathjax-support-for-mkdp plugin.
  • 2016/08/28: Set the title of preview page with filename.
  • 2016/05/18: Support key mapping and new g:mkdp_command_for_global option item.
  • 2016/03/12: New Github-like Markdown styles markdown.css and support task list.
  • 2016/01/24: Support to display the local picture in Markdown.

Buy Me A Coffee ☕️


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
css (7,192
vim (852
markdown (822
plugin (743
neovim (304
mathjax (27

Find Open Source By Browsing 7,000 Topics Across 59 Categories