自动添加注释
?程式的時候給代碼注釋有時候蠻煩人的,尤其是用英文寫注釋的時候,但是養(yǎng)成寫注釋的習(xí)慣,對日后代碼的維護還是很有幫助的,一般腳本的開頭會注明編寫時間,版本,用途等說明。
VIM?里面能夠使用映射(map)來幫您自動插入這些信息,就像下面這樣
#****************************************************
#? ?? ?? ?Author: Muddyboot - toobyddum@gmail.com
#??Last modified: 2007-08-10 21:19
#? ?? ? Filename: /etc/vimrc
#? ? Description: Configuration for?vim?editor
#****************************************************
其中 Last modified 后面的時間是根據(jù)當(dāng)前時間自動插入的,Filename 后的文檔名也是當(dāng)前編輯的文檔名。
我們的目的是在VIM的命令模式下面,按下fuck 4個字符,自動在文檔的開頭插入上面的信息,這就需要在VIM的配置文檔中定義關(guān)于 fuck 的map指令
為了方便,先定義一個函數(shù)
function AddTitle()
call setline(1,"#****************************************************")
call append(1,"#? ?? ?? ?Author: Muddyboot - toobyddum@gmail.com")
call append(2,"#??" . "Last modified: " . strftime("%Y-%m-%d %H:%M"))
call append(3,"#? ?? ? Filename: " . expand("%"))
call append(4,"#? ? Description: ")
call append(5,"#****************************************************")
endf
函數(shù)用 function 關(guān)鍵字開頭,函數(shù)名的第一個字母需要大寫
setline 表示在第一行插入 #********?
append 表示追加行,expand表示展開變量的值,%代表文檔名,strftime 表示當(dāng)前時間
然后定義 map 規(guī)則:
map fuck :call AddTitle():$o
表示按鍵,表示回車,上面的指令的意思是在文檔開頭加入注釋,然后跳到文檔末尾,進入輸入模式。
OK,很簡單吧~~~~~~?
好,當(dāng)您對一個腳本修改后,需要更新 Last modified 時間怎么辦,手動嗎?當(dāng)然不用這么麻煩~~~~?
同樣能夠指定一個 map 規(guī)則,比如 shit
map shit :/# *Last modified: /s@:.*$@/=strftime(": %Y-%m-%d %H:%M")@
讓我們一步一步分析上面規(guī)則的意思:
/# *Last modified: / 表示查找以 # 開頭,后面跟上一些空格,然后是 Last modified: 的行,也就是上面插入注釋的第2行
s@....@@ 表示替換
第一個 @....@ 中間的內(nèi)容,表示原來的時間,
第二個 @....@ 是新的當(dāng)前時間,由于這個時間是動態(tài)的,需要調(diào)用函數(shù),故在@后需要用 /= 來告訴 s 命令
/= 后面的代碼是個表達式,其值就是當(dāng)前時間
最后一個??代表回車,也就是執(zhí)行這個替換操作
好了,現(xiàn)在,您只要按下fuck,VIM會自動行首插入注釋,假如下次您修改了文檔,按下shit,注釋中的最后更改時間則會自動同步到當(dāng)前時間,再一次感受到了VIM的強大功能了吧 !
總結(jié)
- 上一篇: public protect priva
- 下一篇: xfire客户端对返回list很挑剔,所