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
Add a trackback
Add a comment

Your name. (required)

Your personal website. (optional)

Your email address. Will not show in page. (suggested, but optional)

Text format is "Plain Text".

Enter "vKWzu"
© hover year to navigate month: powered by django