VI Improved (vim) 有個很方便很好用的功能叫作 modeline。在檔案裡面,可以用該檔案標準的註解形式向 vim 下指令。譬如一個 reStructuredText 格式的文字檔,你可以加上以下的 modeline,讓 vim 在讀它的時候自動把檔案解釋為 rst (以取得正確的語法高亮):
某些文字。 .. vim: set ft=rst:
modeline 裡可以放的指令不限一個,所以我大部分的 .py 檔案在檔尾都有這麼一行的 modeline:
# vim: set ai et nu sw=4 ts=4 tw=79:
我喜歡這樣格式化過的 .py 檔案。
只有自己會看的檔案這麼作當然沒什麼問題,但如果有別人會看的話,這位別人用的又也是 vim,我們設的 modeline 或許會有點擾人。不過,vim 這麼強大的軟體,難道不能設定為根據檔案型態決定統一的設定嗎?當然可以,只是我一直懶得把這個功能找出來...
vim 可以針對指定的條件,在軟體發生指定事件的時候執行指令。這個功能叫作 autocmd。假設我希望在開啟每一個 .py 檔的時候都執行上面 modeline 的那些指令,可以設定一個以下的 autocmd (寫在你的 .vimrc 或 Windows 下的 _vimrc 裡):
au BufRead *.py set ai et nu sw=4 ts=4 tw=79
如果我們寫的程式要給別人看,希望留給別人的 vim 一點設定的空間,可以使用 autocmd 取代 modeline。
Posted by yungyuc
at 15:39,
0 comment,
0 trackback.
Navigate
- Previous: Django HTML escape @2007/01/09
- Next: FUSE/SSHFS workaround @2007/01/11
Add a trackback
Please send trackback to: http://blog.seety.org/everydaywork/2007/1/11/632/trackback/.
Add a comment