我喜欢的标记和牟编辑器,有很大的能力,预览渲染结果的飞行。所以我在想,有没有办法在 Vim 中做同样的事情?
不,有几个语法突显,片段等 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来进行预览:
<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 每隔几秒钟就自动重新加载一次,但是我似乎找不到这样一个可以用于本地文件的扩展。
<F5>
我偶然发现了一个不错的插件,它的工作非常出色的方块 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来反映您的更改。
,pc
,pp
evince
附注: 我已经将“领导者”映射到,
添加到@Codemonkey 的答案中,如果您正在使用 OSX,您可以在您的. vimrc 文件中使用以下内容。
" Open markdown files with Chrome. autocmd BufEnter *.md exe 'noremap <F5> :!open -a "Google Chrome.app" %:p<CR>'
我不认为 Vim 的预览减价是个好主意。 但是您可以通过键入 %!markdown来转换 HTML 中的降价,想必您已经安装了降价。然后保存该文件并在浏览器中打开它。
%!markdown
这里有一个简单的 vim 插件可以在 Chrome 浏览器中查看 Markdown ——它不需要 Ruby 或任何花哨的东西,当你写到 vim 缓冲区时,它会刷新预览(它也可以用热键激活)
而且,预览是在后台进行的,所以您永远不必离开 vim。
Https://github.com/jamshedvesuna/vim-markdown-preview