估計大家也都和我一樣用過不少的編輯器,什么notepad2,emeditor,editplus,ultraedit,vs2005,sourceinsight,slickedit,emacs,vim(gvim),別看多,我其實還是比許多編輯器瘋狂玩家(注意,真的是玩家)收斂多了,當然最后還是本分的從了vim(gvim),呵呵,因為Vim實在能帶給我其他編輯器所沒有的高效。
很多編輯器都支持在源代碼中自動添加作者信息的功能,據我所致sourceinsight就支持,雖然我們的Vim(gvim)默認沒有這個功能,但是只需要幾行代碼自己配置一下,我們一樣可以讓Vim(gvim)支持自動添加作者信息!
還是照例,先貼個圖給大家解解饞:
估計大家也都和我一樣用過不少的編輯器,什么notepad2,emeditor,editplus,ultraedit,vs2005,sourceinsight,slickedit,emacs,vim(gvim),別看多,我其實還是比許多編輯器瘋狂玩家(注意,真的是玩家)收斂多了,當然最后還是本分的從了vim(gvim),呵呵,因為Vim實在能帶給我其他編輯器所沒有的高效。
很多編輯器都支持在源代碼中自動添加作者信息的功能,據我所致sourceinsight就支持,雖然我們的Vim(gvim)默認沒有這個功能,但是只需要幾行代碼自己配置一下,我們一樣可以讓Vim(gvim)支持自動添加作者信息!
還是照例,先貼個圖給大家解解饞:
好啦,現在貼出代碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
"進行版權聲明的設置 "添加或更新頭 map <F4> :call TitleDet()<cr>'s function AddTitle() call append(0,"/*=============================================================================") call append(1,"#") call append(2,"# Author: dantezhu - dantezhu@vip.qq.com") call append(3,"#") call append(4,"# QQ : 327775604") call append(5,"#") call append(6,"# Last modified: ".strftime("%Y-%m-%d %H:%M")) call append(7,"#") call append(8,"# Filename: ".expand("%:t")) call append(9,"#") call append(10,"# Description: ") call append(11,"#") call append(12,"=============================================================================*/") echohl WarningMsg | echo "Successful in adding the copyright." | echohl None endf "更新最近修改時間和文件名 function UpdateTitle() 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和windows下(vim/gvim)均可運行正常。
不知道大家看懂了沒有,實際上在一個C/C++/C#/JAVA文件中,只需要按下F4,那么信息就自動給你添加到文件開頭啦;如果已經存在版權信息,那么vim會幫你自動更新到最新狀態。
另外還要幫大家提到一個小細節,即
1 2 |
normal m' normal '' |
這兩行,他們實際上是調用了vim(gvim)內置的標記位置的方法,在執行完相應操作之后,又跳回到原來的位置。所以當用F4添加/更新作者信息的時候,不用擔心光標的位置會被移動啦~~
好啦,在自己的Vim里面試一下吧,是不是比原來方便了很多啊,有用的話要記得請我吃飯啊~~哈哈
版權所有,轉載請注明出處。http://www.vimer.cn