在TextMate中使用Vi的按鍵配置

之前寫過一篇介紹Vim snippetsEmu文章有提到TextMate雖然很好,但如果不能支援vi的按鍵配置方式(key binding),像我這種依賴vim為生的人就不可能跳槽過去。沒想到當初隨便說說的怨念,還真的有人把它做出來了。這東西叫ViMate(這名字真不錯),是一個TextMate plugin。下載回來點兩下就會自己裝到TextMate裡。打開TextMate後,外觀看不出有什麼不同,但很快就發現還要按一下i才能開始打字,按ESC游標會變成綠色代表進入command mode...。雖然這個plugin還在開發中,不是所有vi命令都支援,但也提供vi fans一個想玩TextMate的好機會啦。阅读全文

Drag&Drop Programming

第一次看到TextMate的snippet時(可參考TextMate, snippetsEmu for Vim這篇文章),就覺得這東西一定會徹底改變人們寫程式的習慣。但光只這樣好像還是有點不夠。snippet能讓programmer不用死記每種語言的不同語法,只要記得關鍵字,然後打出來按tab,接下來需要的東西全部自動生出來,programmer只要接著把空格填一填就好。這讓我想到CMU HCII所做的baristaWhyline的操作介面: code block可以直接被拖拉出來,放到想要的地方,接著再把空格填一填,聽起來跟snippet很像不是嗎?:p我想未來的programming環境都會往這個方向發展,到時要學新的程式語言也變得更簡單(反正這些年來的新語言都是換湯不換藥),只要打開editor,把需要的語法拉出來,再做一下填充題就完成了。所以,這就叫做拖曳編程(Drag&Drop Programming)嗎?阅读全文

TextMate, snippetsEmu for Vim

在Mac OS X上有一個傳說中的text editorTextMate,它因為在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阅读全文