是否有预览标记文件的 Vim 插件?

我喜欢的标记和牟编辑器,有很大的能力,预览渲染结果的飞行。所以我在想,有没有办法在 Vim 中做同样的事情?

61053 次浏览

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

如果你对实时预览感兴趣,也许 MarkdownPad会更适合你的需要。

我在我的.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>

它并不完美,也不是实时的,但对我有限的需求来说已经足够了。

我使用 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>

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

我最近发现了一个 Chrome 扩展,可以让 Chrome 正确地打开和显示标记文件: 降价预览

然后只需要在 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>'

当然,如果您的文件没有。如果您希望您的地图位于不同的键或 Chrome 位于不同的位置。

现在每当我编辑一个。我可以点击 <F5>在 Chrome 中打开这个文件。一个完美的解决方案是让 Chrome 每隔几秒钟就自动重新加载一次,但是我似乎找不到这样一个可以用于本地文件的扩展。


优点:

  • 无需任何正在运行的服务器或特殊代码,只需点击一个按钮就可以预览您的标记文件。
  • 适用于所有支持 Vim 和 Chrome 的平台——几乎涵盖了所有平台。

缺点:

  • 没有自动刷新,你必须按 <F5>每次你想预览的文件。
  • 没有 Github 口味的降价。

我偶然发现了一个不错的插件,它的工作非常出色的方块 https://github.com/waylan/vim-markdown-extra-preview

您实际上可以使用 潘多克编译成您选择的文档格式,并使用外部默认命令查看它。例如,我喜欢预览它作为 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预览。因为在 ubuntuevince是默认的查看器,并自动加载更改过的文件。您最终只能执行 ,pc来反映您的更改。

附注: 我已经将“领导者”映射到,

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

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

我不认为 Vim 的预览减价是个好主意。 但是您可以通过键入 %!markdown来转换 HTML 中的降价,想必您已经安装了降价。然后保存该文件并在浏览器中打开它。

这里有一个简单的 vim 插件可以在 Chrome 浏览器中查看 Markdown ——它不需要 Ruby 或任何花哨的东西,当你写到 vim 缓冲区时,它会刷新预览(它也可以用热键激活)

而且,预览是在后台进行的,所以您永远不必离开 vim。

Https://github.com/jamshedvesuna/vim-markdown-preview