2012-02-09 34 views
51

我喜歡標記和Mou編輯器,它們能夠快速預覽渲染結果。所以我想知道有沒有辦法在vim中完成sam的工作?是否有預覽markdown文件的vim插件?

+2

這裏是一個[VIM腳本](http://blog.natesilva.com/post/5256838248/how-to-preview-a-markdown-document-in-vim)由內特Silva的哪個可以在完成編輯後用於預覽結果。 – weynhamz 2012-08-21 08:43:44

+0

@TechliveZheng太棒了!我會檢查出來 – mko 2012-08-22 03:30:45

+0

這不是你要求的,但如果你不知道它,結賬[Voom](http://www.vim.org/scripts/script.php ?script_id = 2657),這是一個使用markdown(':voom markdown')的大綱。它比動態渲染器更有用,因爲它可以讓你掃描文檔標題。 – naught101 2014-02-04 04:59:41

回答

32

我最近發現了一個Chrome擴展,使Chrome能夠正常打開並顯示降價文件:Markdown preview

然後,它只是在Vim中用鍵映射鍵來打開文件的問題。我的是這樣:

" 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」文件,我都可以在Chrome中打開<F5>文件。一個完美的解決方案是讓Chrome每隔幾秒自動刷新一次,但我似乎無法找到適用於本地文件的擴展。


優點:

  • 打一個按鈕來預覽降價文件,而不需要任何正在運行的服務器或特殊代碼的能力。
  • 適用於支持Vim和Chrome的所有平臺 - 幾乎涵蓋所有平臺。

缺點:

  • 沒有自動刷新,你必須要預覽該文件每次打<F5>
  • 沒有Github味減價。
+1

您可以在Chrome中使用LiveReload擴展程序緩解「無自動刷新」,但是,缺失的GitHub風格對我來說是一種阻礙。 – twomm 2013-03-15 11:08:38

+0

@twomm:我無法找到適用於本地文件的擴展名。 – Hubro 2013-10-11 06:53:05

+0

https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei - 並在他們的網站上查看他們的安裝說明以獲取本地文件。沒有嘗試過,但應該工作。 – twomm 2013-10-11 10:52:35

5

不,有語法高亮,代碼段等多個Vim插件,但的Vim顯示文本,只文本,因此你不能有降價(或任何其他形式的)在Vim中預覽

如果您對實時預覽感興趣,或許MarkdownPad會更好地滿足您的需求。

+2

不正確,因爲@Suan已經提到vim提供了實時降價預覽[vim-instant-markdown](https://github.com/suan/vim-instant-markdown)。安裝是一個無用的工具,但它的工作原理! – chutsu 2013-05-01 14:26:06

+3

@chutsu:不正確:vim-instant-markdown的預覽不在vim內,而是在瀏覽器內 – Hotschke 2013-07-05 17:58:15

+1

我不認爲這是要求預覽*有vim顯示,只是它可以控制和*從* Vim更新。 – Thriveth 2014-04-09 15:44:54

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> 

它不是完美的,它不是實時的,但它足夠好爲我的有限的需求。

+0

有了它並在瀏覽器中自動重新加載插件,兩個窗口並排... – 2012-02-09 21:12:25

+0

@lucapette - 該功能基本上是內特席爾瓦的插件剝離下來的,不是嗎? http://blog.natesilva.com/ – Rook 2012-02-17 02:53:22

+0

@Idigas老實說,我不記得我的功能在哪裏。雖然,這是我第一次看這個網站。 – lucapette 2012-02-17 08:55:06

12

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

您很幸運 - 我剛剛編寫了一個帶有實時Markdown預覽的vim插件。它使用github Markdown和樣式:https://github.com/suan/vim-instant-markdown

+1

我剛剛偶然發現你的插件,並非常喜歡這個概念。有一些麻煩 - 你可以看看http://stackoverflow.com/questions/9321327/porting-a-markdown-live-preview-in-vim-plugin-from-nix-to-windows並告訴,可以嗎?也可以在Windows上工作嗎? – Rook 2012-02-17 00:38:47

+2

這是非常酷的,但不幸的是,編輯變得非常滯後,鍵盤按下跳過。 – Ciryon 2013-06-24 11:00:10

+2

真的很複雜的設置,沒有爲我的OSX工作。 – Intentss 2014-02-17 04:40:31

1

我碰到一個不錯的插件,偉大的工作開箱https://github.com/waylan/vim-markdown-extra-preview

+0

我的文檔通常很長,無法放在一個頁面中。刷新瀏覽器後,它通常會將我帶到md文件的頂部,而我正在編輯遠離.md文件的頂部。這個插件是否知道上次編輯發生的位置,並在.md頁面中預覽該位置? – 2017-12-19 17:09:02

+0

這不是我的插件,我建議與項目維護人員溝通 – katzmopolitan 2017-12-19 20:19:42

9

,你可以實際使用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> 

我編譯使用,pp使用,pc和預覽文件。由於在Ubuntu的evince是默認查看器,並自動加載更改的文件。您最終只能做到,pc,以便您的更改能夠反映出來。

PS:我有領袖映射到,

5

添加到@Codemonkey的答案,如果你使用的OSX,你可以使用你的.vimrc文件下面。

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

我不認爲VIM預覽降價是一個好主意。 但是你可以通過輸入%!markdown來轉換HTML中的markdown,大概你已經安裝了markdown。然後保存該文件並在瀏覽器中打開它。

3

這裏有一個簡單的vim插件在Chrome中查看降價 - 它不需要紅寶石或任何幻想,當你寫vim的緩衝區將刷新預覽(也可以用熱鍵激活)

此外,預覽發生在後臺,所以你永遠不必離開vim。

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

+0

我的文檔通常很長,無法放在單個頁面中。刷新瀏覽器後,它通常會將我帶到md文件的頂部,而我正在編輯遠離.md文件的頂部。這個插件是否知道上次編輯發生的位置,並在.md頁面中預覽該位置? – 2017-12-19 17:10:10