neoclide / macdown.vim

Live preview markdown in Chrome using applescript

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Macdown.vim

A simplified and flexible markdown preview for vim user on Mac. Using applescript instead of a server to enhance the exprience of live preview.

You can get the style preview here

Features

  • No server, much better performance.
  • Async markdown parse when possible (using jobstart of nvim/vim or vimproc)
  • Works out of box, all dependencies are optional.
  • Preview in Chrome with range and auto reload support.
  • Auto close Chrome tab on buffer delete and vim exit.
  • Tables, GFM enabled, code highlight and footnote enabled by default.
  • Misaka parser support smartypants, toc (table of content) and unicode (including Emoji)

Install

Take vundle as example:

Plugin 'chemzqm/macdown.vim'

Usage

To preview current markdown file, type:

:Preview

Preview with range, eg:

:1,10Preview

Or visual select a range, and use:

:'<,'>Preview

To toggle auto preview for current file, type:

:PreviewAuto

The corresponding chrome tab would be activated and refreshed on TextChanged and TextChangedI. A handy remap could be:

nnoremap <C-p> :PreviewAuto<CR>

Configuration

By default macdown.vim using markit for markdown parsing, it's exists inside this repository, but if you need speed and more future, you can set global variable:

let g:macdown_marked_programme = 'misaka'

To enable misaka parse, it's almost 4 times faster than markit, but you need to install python dependencies:

pip install misaka pygments

sudo might be required.

You can also make your own parser, just create a excutable file that accepts markdown content from stdin and output html to stdout, then configure g:macdown_external_programme to the path of the file:

let g:macdown_external_programme = '~/my-parser'

TODO

  • Scrollbind for vim and Chrome (vim doesn't support Scroll autocmd, bind CurseMove would be rediculious for me)

About

Live preview markdown in Chrome using applescript

License:MIT License


Languages

Language:JavaScript 97.2%Language:HTML 1.2%Language:Vim Script 0.9%Language:Python 0.5%Language:AppleScript 0.2%