歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Vim如何自動添加代碼文件頭

Vim如何自動添加代碼文件頭

日期:2017/3/3 15:53:18   编辑:關於Linux

首先感謝網上的大牛們:

http://www.vimer.cn/

還有這位兄台:http://www.oschina.net/code/snippet_103341_9644

有了Ubuntu怎麼可以不用Vim?

然後就先逗比的現在Windows下裝了gVim。。。。。。

果然是藥不能停。。。。。。

一個不錯的版本的傳送門:【百度雲】http://pan.baidu.com/s/1qWntcEK

然後就是添加文件頭了。這個從Vimer大牛的博客中學到不少姿勢,但是無奈我太弱了正則表達式都不會。。。。。。大牛用正則表達式來匹配,我是直接字符串匹配。。。。。。。給跪。。。。。

順便把一些資料給大家:

添加路徑和文件http://vim.wikia.com/wiki/Insert_current_filename

這個是Vim的設置代碼,把F4綁定為添加或更新文件頭。

主要的結構還是那位大牛的。。。我只是很捉急的修改了一點而已。。。

本欄目更多精彩內容:http://www.bianceng.cn/OS/Linux/

"進行版權聲明的設置  
"添加或更新頭  
map <F4> :call TitleDet()<cr>'s  
function AddTitle()  
    call append( 0, "/*=============================================================================")  
    call append( 1, "#       COPYRIGHT NOTICE")  
    call append( 2, "#       Copyright (c) 2014")  
    call append( 3, "#       All rights reserved")  
    call append( 4, "#")  
    call append( 5, "#       @author       :Shen")  
    call append( 6, "#       @name         :")  
    call append( 7, "#       @file         :".expand("%:p:h")."\\".expand("%:t"))  
    call append( 8, "#       @date         :".strftime("%Y/%m/%d %H:%M"))  
    call append( 9, "#       @algorithm    :")  
    call append(10, "=============================================================================*/")  
    call append(11, "")  
    echohl WarningMsg | echo "Successful in adding the copyright." | echohl None  
endf  
"更新最近修改時間和文件名  
function UpdateTitle()  
    normal m'  
    execute '/#       @date      /s@:.*$@\=strftime(":%Y-%m-%d %H:%M")@'
    normal ''
    normal mk  
    execute '/#       @file      /s@:.*$@\=":".expand("%:p:h")."\\".expand("%:t")@'
    execute "noh"
    normal 'k  
    echohl WarningMsg | echo "Successful in updating the copy right." | echohl None  
endfunction  
"判斷前10行代碼裡面,是否有COPYRIGHT NOTICE這個單詞,  
"如果沒有的話,代表沒有添加過作者信息,需要新添加;  
"如果有的話,那麼只需要更新即可  
function TitleDet()  
    let n = 2  
    "默認為添加  
        let line = getline(n)  
        let str = '^#       COPYRIGHT NOTICE$'
        if line =~ str  
            call UpdateTitle()  
            return
        endif  
    call AddTitle()  
endfunction

然後順便附上結果:

/*=============================================================================  
#       COPYRIGHT NOTICE  
#       Copyright (c) 2014  
#       All rights reserved  
#  
#       @author       :Shen  
#       @name         :  
#       @file         :G:\My Source Code\DefaultCode.cpp  
#       @date         :2014/06/10 18:06  
#       @algorithm    :  
=============================================================================*/

其實還可以做到根據不同的文件添加不同的代碼頭。。。工作量有點大,而且本弱主要也就寫一個C++,然後就沒搞了。

Copyright © Linux教程網 All Rights Reserved