有個插件叫code_complete,也很不錯,本來我基本上打算用它了,可是有個小問題折騰很久也沒搞定:給main加一個return 0;
后來我看到有個經驗豐富的資深VIM用戶說他最早接觸的是code_complete,然后又換了一個什么插件,最后遇到snipmate,說有相見恨晚的感覺,因為那個時候他已經為了customize前兩個插件寫了上千行代碼,他說他再也不必找其他類似功能的插件了——可見,這是個殺手級插件!
然后我就試了一下snipmate,果然超贊,它默認的風格就是我喜歡的那種(我之前還調整了code_complete的風格),而且main默認的就是包含return 0;就是如此的合我心意!而且你想修改它來滿足自己的喜好也變得非常容易,只需要改snippets文件夾下的相應文件,如cpp.snippets,比code_complete要容易得多(code_complete是混在一起,因此在設計上,snipmate也是更勝一籌)。另外,snipmate支持多種語言C/CPP/JAVA/Ruby/Python/perl/php/tex/html/Javascript/objc/sh/zsh……幾乎能想到的都覆蓋了,而code_complete似乎只是為C/C++設計的
我的VIM經驗是:不要只去看,去試一下,不用擔心有什么副作用,只要你記住你干了些什么,就完全可以恢復回去(比如把.vimrc里添加的東西注釋掉,把放到.vim文件夾下的再刪掉),而且通常情況是:你所做的設置,無論是看來的還是聽來的,通常只會讓你更好受而不是更難受。另外,不要覺得可能你不需要這個功能,試一下才能知道需不需要(我很早以前就看到網上有人用code_complete,還看了那個demo的動畫,但我覺得我不需要,不過今天用了一下,覺得太cool了,太好了,正是我需要的,離不開了。當然,后來我改變想法了,因為又看到了snipmate)
我把code_complete的演示動畫放在這里,注意:這是code_complete,至於snipmate,很相似,但更好
安裝
下載snipmate:http://www.vim.org/scripts/script.php?script_id=2540
如果連不上那個網站(我現在就是),可以從這里下載:http://pan.baidu.com/share/link?shareid=161279&uk=1292515846
版本是0.83,目前是最新版本
我的系統是ubuntu11.10,主文件夾下有個.vim的隱藏文件夾,cp壓縮文件到該文件夾下,解壓縮(對同名文件夾會合並,同名文件會詢問是否覆蓋或重命名,所以不必擔心文件被覆蓋),這樣就OK了
使用
這個插件只用了一個鍵,就是TAB鍵,比如對一個C/C++文件,輸入inc,再按TAB鍵,就會填充為#include <stdio.h>,同時stdio被選中,以備修改。還有其他的,如main+TAB, wh+TAB,do+TAB,for+TAB,forr+TAB,if+TAB……具體可以看snippets文件夾下的那些文件,比如c.snippets
--
一些我個人使用的snippets
c.snippets
snippet sc
scanf("${1:%s}\n"${2});${3}
snippet re
return ${1:0};${2}
snippet elif
else if (${1}) {
${2:/* code */}
}
cpp.snippets
snippet us
using namespace std;