在Mac OS X上有一個傳說中的text editor: TextMate,它因為在Ruby On Rails demo上頻頻曝光,於是突然爆紅起來,甚至傳出有人為了這個editor而買了Mac的消息。我在第一次看到那個rails demo時,也注意到了presentor用的editor似乎非常神奇,不但能打幾個字就生出”整塊” code block template,而且還能非常流暢的把template填完。後來去查了一下,才發現原來這個editor叫TextMate,而那個神奇的auto-complete功能叫做snippet。
TextMate雖然真的很好用,但目前還有個致命缺點:它竟然不能正確處理中文!!更精確的說,它會把中文字的寬度當成一般ascii字元的寬度來看,所以打中文上去就會發現字都疊在一起了。除此之外,OpenVanilla的選字窗在上面也是完全看不見的。
因為如此,我還是只能繼續用我的Vim。(其實,即使TextMate的中文沒問題,我應該也還是換不過去吧,除非它支援Vi的key binding….) 雖然TextMate不太合用,但我還是對snippet念念不忘。剛用Google查了一下,發現跟我有同樣怨念的人還真不少,而且早就有人寫了Vim的snippetsEmu,也就是能讓Vim也有一樣功能的plugin!
snippetsEmu的用法還蠻簡單的,把它的.vim抓下來放在.vim/plugin/裡,接著在.vimrc中設定一行
let g:snip_set_textmate_cp=1
就能開啟TextMate的相容模式,也就是一直按tab就行了。
但只有這個東西還不太夠用,目前還缺少各個語言的snippet file,如果有人知道哪裡有蒐集或是有自制的請通知我一聲。
我目前已知的snippets有:
BTW, Emacs也有類似的plugin,可以參考這篇文章: http://gugod.org/blog/2006/01/emacs-my-snippetel.html
這個在更早的 IDEA 或者是現在的 eclipse 中都有,因為 java 寫起來實在太煩人了…
Pingback: vgod’s blog » Drag&Drop Programming
現在 SnippetsEmu 已經支援了很多語言了(java,cpp,html,xml,css,javascript…etc),可以參考:
http://c9s.blogspot.com/2007/06/vim-snippet.html
Pingback: vgod’s blog » 在TextMate中使用Vi的按鍵配置
這個在更早的 IDEA 或者是現在的 eclipse 中都有,因為 java 寫起來實在太煩人了…
文章寫得很專業哦
日本人寫了一個 snipmate , 改善了所有 snippetEmu 的問題。 🙂