是否有用于预览markdown文件的Vim插件?

时间:2012-02-09 14:09:08

标签: vim markdown

我喜欢标记的和Mou编辑器,它具有很好的动态预览渲染结果的能力。所以我想知道,有没有办法在Vim做同样的事情?

10 个答案:

答案 0 :(得分:61)

你很幸运 - 我刚刚编写了一个带有实时Markdown预览功能的vim插件。它也使用github Markdown和样式:https://github.com/suan/vim-instant-markdown

答案 1 :(得分:41)

我最近发现了Chrome扩展程序,可以让Chrome正常打开并显示降价文件:Markdown preview

然后只需要在Vim中映射一个键来打开Chrome文件。我看起来像这样:

" Open markdown files with Chrome.
autocmd BufEnter *.md exe 'noremap <F5> :!start C:\Users\tomas\AppData\Local\Google\Chrome\Application\chrome.exe %:p<CR>'

此命令必须进行编辑,当然,如果您的文件没有“.md”扩展名,您希望在不同的密钥上进行映射,或者Chrome位于不同的位置。

现在每当我编辑“.md”文件时,我都可以点击<F5>在Chrome中打开该文件。一个完美的解决方案是让Chrome每隔几秒自动重新加载一次,但我似乎无法找到适用于本地文件的扩展程序。


优点:

  • 能够点击按钮预览降价文件,而无需任何正在运行的服务器或特殊代码。
  • 适用于支持Vim和Chrome的所有平台 - 几乎涵盖所有平台。

缺点:

  • 不自动刷新,每次要预览文件时都必须点击<F5>
  • 没有Github风味的降价。

答案 2 :(得分:13)

我使用Marked.app预览Markdown文件。并已映射<leader>p进行预览:

function! s:setupMarkup()
  nnoremap <leader>p :silent !open -a Marked.app '%:p'<cr>
endfunction

au BufRead,BufNewFile *.{md,markdown,mdown,mkd,mkdn} call s:setupMarkup()

如果您不想在Marked.app上投入4美元,那么您可以尝试Hammer.vim。将行更改为:

map <buffer> <leader>p :Hammer<CR>

答案 3 :(得分:11)

您实际上可以使用pandoc编译为您选择的文档格式,并使用外部默认命令查看它。例如,我喜欢将其预览为pdf,并在Ubuntu上使用以下设置。

" pandoc , markdown
command! -nargs=* RunSilent
      \ | execute ':silent !'.'<args>'
      \ | execute ':redraw!'
nmap <Leader>pc :RunSilent pandoc -o /tmp/vim-pandoc-out.pdf %<CR>
nmap <Leader>pp :RunSilent gnome-open /tmp/vim-pandoc-out.pdf<CR>

我使用,pc编译文档并使用,pp进行预览。因为在ubuntu中evince是默认查看器并自动加载已更改的文件。您最终只会,pc进行更改以反映。

PS:我有Leader映射到,

答案 4 :(得分:5)

不,有几个Vim插件用于语法高亮,片段等,但 Vim只显示文本和文本 ,因此 你不能有Markdown (或其他任何类型)在Vim中 预览

如果您对实时预览感兴趣,可能会MarkdownPad更适合您的需求。

答案 5 :(得分:5)

添加到@Codemonkey的答案,如果您使用的是OSX,则可以在.vimrc文件中使用以下内容。

" Open markdown files with Chrome.
autocmd BufEnter *.md exe 'noremap <F5> :!open -a "Google Chrome.app" %:p<CR>'

答案 6 :(得分:3)

这是一个简单的vim插件,可以在Chrome中查看Markdown - 它不需要红宝石或任何花哨的东西,并且会在您写入vim缓冲区时刷新预览(也可以使用热键激活)

此外,预览在后台进行,因此您永远不必离开vim。

https://github.com/JamshedVesuna/vim-markdown-preview

答案 7 :(得分:1)

我的.vim目录中有一个函数:

function! markdown#preview()
  silent update
  let output_name = tempname() . '.html'

  let file_header = ['<html>', '<head>',
        \ '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">',
        \ '<title>'.expand('%:p').'</title>',
        \ '<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.3.0/build/cssreset/reset-min.css">',
        \ '<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.3.0/build/cssbase/base-min.css">',
        \ '<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.3.0/build/cssfonts/fonts-min.css">',
        \ '<style>body{padding:20px;}div#container{background-color:#F2F2F2;padding:0 20px;margin:0px;border:solid #D0D0D0 1px;}</style>',
        \ '</head>', '<body>', '<div id="container">']

  call writefile(file_header, output_name)

  silent exec '!markdown "' . expand('%:p') . '" >> "' . output_name . '"'

  silent exec '!echo "</div></body></html>" >> "' . output_name . '"'

  silent exec '!sensible-browser "' . output_name . '" &'
endfunction

我也有以下映射:

inoremap <buffer> <F7> <ESC>:call markdown#preview()<CR>
nmap <buffer> <F7> :call markdown#preview()<CR>

它并不完美,它不是实时的,但它足以满足我的有限需求。

答案 8 :(得分:1)

我遇到了一个很好的插件,开箱即用https://github.com/waylan/vim-markdown-extra-preview

答案 9 :(得分:0)

我不认为vim中的预览降价是个好主意。 但是你可以通过输入%!markdown来改变HTML中的降价,大概你已经安装了降价。然后保存该文件并在浏览器中打开它。