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