vim 一鍵添加註釋 自動添加文件頭註釋

估計你們也都和我同樣用過很多的編輯器,什麼notepad2,emeditor,editplus,ultraedit,vs2005,sourceinsight,slickedit,emacs,vim(gvim),別看多,我其實仍是比許多編輯器瘋狂玩家(注意,真的是玩家)收斂多了,固然最後仍是本分的從了vim(gvim),呵呵,由於Vim實在能帶給我其餘編輯器所沒有的高效。
不少編輯器都支持在源代碼中自動添加做者信息的功能,據我所致sourceinsight就支持,雖然咱們的Vim(gvim)默認沒有這個功能,可是隻須要幾行代碼本身配置一下,咱們同樣可讓Vim(gvim)支持自動添加做者信息!
仍是照例,先貼個圖給你們解解饞:linux

估計你們也都和我同樣用過很多的編輯器,什麼notepad2,emeditor,editplus,ultraedit,vs2005,sourceinsight,slickedit,emacs,vim(gvim),別看多,我其實仍是比許多編輯器瘋狂玩家(注意,真的是玩家)收斂多了,固然最後仍是本分的從了vim(gvim),呵呵,由於Vim實在能帶給我其餘編輯器所沒有的高效。
不少編輯器都支持在源代碼中自動添加做者信息的功能,據我所致sourceinsight就支持,雖然咱們的Vim(gvim)默認沒有這個功能,可是隻須要幾行代碼本身配置一下,咱們同樣可讓Vim(gvim)支持自動添加做者信息!
仍是照例,先貼個圖給你們解解饞:面試


好啦,如今貼出代碼以下:vim

 
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會幫你自動更新到最新狀態。
另外還要幫你們提到一個小細節,即windows

1
2
normal m'
normal ''

這兩行,他們其實是調用了vim(gvim)內置的標記位置的方法,在執行完相應操做以後,又跳回到原來的位置。因此當用F4添加/更新做者信息的時候,不用擔憂光標的位置會被移動啦~~
好啦,在本身的Vim裏面試一下吧,是否是比原來方便了不少啊,有用的話要記得請我吃飯啊~~哈哈
版權全部,轉載請註明出處。http://www.vimer.cnapp

相關文章
相關標籤/搜索