作者:楊碩,華清遠見嵌入式學院講師。
每個程式員都有自己心愛的代碼編輯和查看工具,相信不少Linux下的程式員都喜歡用Vim,儘管Vim沒有SourceInsight這種依託於案頭環境的編輯器看起來那樣強大,但是Vim的高效、簡潔以及強大的可配置性都讓它吸引了無數忠實的fans。
很多編輯器都支援在原始碼中自動添加作者資訊的功能,SourceInsight就有這項功能。Vim預設是沒有這個功能,但是只要我們稍作配置,就可以實現這個功能了。
在Linux下我們需要修改Vim的設定檔vimrc,位於:
/etc/vim/vimrc
在window下Vim的設定檔位於安裝目錄下的_vimrc。
然後在設定檔中添加如下資訊,就可以實現在原始碼中自動添加作者資訊了:
“將鍵盤上的F4功能鍵映射為添加作者資訊的快速鍵
map <F4> ms:call TitleDet()<cr>'s
function AddTitle()
call append(0,"/*******************************************************************************")
"call append(1,"#")
call append(1," * Author : YangShuo")
"call append(3,"#")
call append(2," * Email : ys@farsight.com.cn")
"call append(5,"#")
call append(3," * Last modified : ".strftime("%Y-%m-%d %H:%M"))
"call append(7,"#")
call append(4," * Filename : ".expand("%:t"))
"call append(9,"#")
call append(5," * Description : ")
"call append(11,"#")
call append(6," * *****************************************************************************/")
echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
endf
“更新最近修改時間和檔案名稱
normal m'
execute '/# *Last modified:/s@:.*$@/=strftime(":/t%Y-%m-%d %H:%M")@'
normal "
normal mk
execute '/# *Filename:/s@:.*$@/=":/t/t".expand("%:t")@'
execute "noh"
normal 'k
echohl WarningMsg | echo "Successful in updating the copy right."| echohl None
endfunction
“判斷前10行代碼裡面,是否有Last modified這個單詞,
“如果沒有的話,代表沒有添加過作者資訊,需要新添加;
“如果有的話,那麼只需要更新即可
function TitleDet()
let n=1
while n < 10
let line = getline(n)
if line =~'^/#/s*/S*Last/smodified:/S*.*$'
call UpdateTitle()
return
endif
let n = n + 1
endwhile
call AddTitle()
endfunction
這段配置在Linux和window下均可正常運行。這樣在一個C/C++/JAVA/C#的原始碼裡面,只需要按一下F4,就可以自動添加作者資訊了。大家只需要修改上面這段配置關於作者資訊的代碼,就可以添加自己的資訊了。
這是在我電腦上啟動並執行結果,看一看,是不是很帥:
趕快動手吧,把這段配置添加到你的vimrc裡,這樣你就可以輕鬆地在源檔案開始添加你的相關資訊了,讓我們的代碼更加規範。