vim 環境寫 markdown 的外掛推薦

盧鈞軼發表於2015-04-13

本文將介紹在vim環境寫markdown文件或者博文的一些好用外掛

markdown語法高亮及識別

博主使用vim-markdown做語法高亮。安裝方法很簡單,這裡以pathogen為例:

cd ~/.vim/bundle
git clone https://github.com/plasticboy/vim-markdown.git

安裝完以後plugin自動由pathogen生效,由於我們是用markdown寫jekyll部落格,這裡需要額外對YAML語法做個配置。在~/.vimrc中加上以下配置

let g:vim_markdown_frontmatter=1

程式碼補全/程式碼模板(snippet)

博主使用的markdown程式碼補全工具是snipMate工具來源於github。具體安裝方式可以見專案的文件,也可以參照下面的摘錄的縮略版:

% cd ~/.vim/bundle
% git clone https://github.com/tomtom/tlib_vim.git
% git clone https://github.com/MarcWeber/vim-addon-mw-utils.git
% git clone https://github.com/garbas/vim-snipmate.git
% git clone https://github.com/honza/vim-snippets.git

這裡比較蛋疼的一點是:vim-markdownvim-snipmate無法自動配合使用,目前看來是因為前者將filetype設定為mkd,而後者需要filetype為markdown才能夠生效。由於博主不懂vim-script所以用比較粗暴的方式解決了這個問題。如果有哪位讀者知道怎麼用vimrc或者其他方法解決這個問題的話,歡迎在博文下面留言!

% cd ~/.vim/bundle/vim-snippets
% cp markdown.snippets mkd.snippets

關於SnipMate還是UltiSnaps

重複造輪是IT界一直在試圖避免的事情,那為什麼github上會同時存在兩個star數量過千程式碼補全工具呢?關於這個問題vim-snippets的作者正面回答過。簡單的總結就是UltiSnaps需要python的支援,這樣的依賴顯然是不精簡的,因此作者寫了一套pure vim的解決方案。具體可見以下的摘錄:

Q: Should “snipMate be deprecated in favour of UltiSnips”?

A: No, because snipMate is VimL, and UltiSnips requires Python. Some people want to use snippets without having to install Vim with Python support. Yes - this sucks.

One solution would be: Use snippets if they are good enough, but allow overriding them in UltiSnips. This would avoid most duplication while still serving most users. AFAIK there is a nested-placeholder branch for snipMate too. snipMate is still improved by Adnan Zafar. So maybe time is not ready to make a final decision yet.

相關文章