最近要寫Scala代碼,本來想用它的Eclipse外掛程式,但Scala這種語言較新,Eclipse外掛程式的補全功能太弱(或是我沒配置好?),所以轉向Vim。
NERDTree :
http://www.vim.org/scripts/script.php?script_id=1658
按樹形瀏覽專案檔,然後你可以選擇指定的檔案開啟編輯,類似於Eclipse的資源總管。
當然Vim內建的netrw也有檔案瀏覽的功能,但同時只能看一個目錄
用命令NERDTree觸發
AutoComplPop :
http://www.vim.org/scripts/script.php?script_id=1879
相當NB的外掛程式。我一直很喜歡SciTE的自動補全,因為它可以候選詞只有一個的時候自動彈出來。這個外掛程式讓Vim也可以自動彈出補全視窗,相當於你隨時都按著Ctrl-N。而且也是通過當前所有開啟的緩衝區裡的單詞token來補全的,既不需要太高的CPU佔用,又很實用。
snipMate :
http://www.vim.org/scripts/script.php?script_id=2540
為Vim加上像TextMate一樣的code snippets。用tab鍵觸發。
其實說到程式碼片段,很多人的思路都是:使用編輯器內建的功能,比如Eclipse的code snippets,或Vim的這個外掛程式,或map定義。如果我們換個思路:為什麼不用外部的軟體?
我推薦使用AutoHotKey(http://www.autohotkey.com/ ),工作在IME層級的鍵盤宏工具。可惜的是只能用在Windows上。
我們希望的功能無非是鍵入p,再按下tab,然後變成<p></p>,而且游標還在中間,諸如此類的功能。AutoHotKey的Hot String能很好的做到這一點,它可以把一個按鍵序資料行繫結到一個用於觸發的字串上。而且你只需在AutoHotKey中定義一次,就可以在Vim、Eclipse、記事本……所有的文字編輯器中使用——因為它工作在IME模式。
但我之所以還要用snipMate,是因為AutoHotKey對帶有變數的code snippets支援得不夠好——它畢竟不是專門針對編程設計的。
還有些人推薦的Vim外掛程式是BufExplorer或MiniBufExplorer,用來瀏覽當前緩衝區,我因為在Windows下用gVim,用菜單就可以瀏覽當前緩衝區,所以用不著。
順便曬下我的vim會話檔案:
cd E:/Java/projects/ptrends/ptrends</p><p>set guifont=Inconsolata:h11:cANSI<br />colorscheme evening<br />set ts=4<br />set shiftwidth=4</p><p>edit src/main/scala/bootstrap/liftweb/Boot.scala</p><p>NERDTree
每次載入會話檔案就可以自動執行這些命令,相當於Eclipse的project檔案。有了這些,用Vim編寫和管理一個project都方便不少。
相關日誌:
我的 AutoHotKey 指令碼:http://blog.csdn.net/shell_picker/archive/2010/09/02/5860073.aspx