vim使用快捷鍵F4生成文件頭註釋、F5生成main函數模板、F6生成.h文件框架模板

在家目錄下的.vimrc文件中增加如下代碼即可,如果沒有.vimrc文件,則新建該文件。

cd ~
touch .vimrc   #如果有該文件則跳過此步驟
vim .vimrc

在文件末尾追加如下代碼:

""""""""""""""""""""""""""""""""""""""""""""""""
""快捷鍵F4,添加文件頭註釋,以及版權聲明
map <F4> :call TitleDet()<cr>'s
function AddTitle()
    "call append( 0, "/* COPYRIGHT NOTICE")
    call append( 0, "\/* 版權聲明")
    call append( 1, " * 功能     :")
    call append( 2, " * 作者     :lsy")
    call append( 3, " * 文件路徑 : ".expand("%:p:h")."/".expand("%:t"))
    call append( 4, " * 創建時間 :".strftime("%Y/%m/%d %H:%M"))
    call append( 5, " *\/")
    call append( 6, "")

    echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
endfunction
"更新最近修改時間和文件名
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 = 1
        "默認爲添加
        let line = getline(n)
        "let str = '^/\* COPYRIGHT NOTICE$'
        let str = '^/\* 版權聲明$'
        if line =~ str
            call UpdateTitle()
            return
        endif
    call AddTitle()
endfunction

""""""""""""""""""""""""""""""""""""""""""""""""""
""快捷鍵F5,生成main函數模板
map <F5> :call TitleDet_main()<cr>'s
function AddTitle_main()
    "call append( 0, "/* COPYRIGHT NOTICE")
    call append( 0, "\/* 版權聲明")
    call append( 1, " * 功能     :")
    call append( 2, " * 作者     :lsy")
    call append( 3, " * 文件路徑 : ".expand("%:p:h")."/".expand("%:t"))
    call append( 4, " * 創建時間 :".strftime("%Y/%m/%d %H:%M"))
    call append( 5, " *\/")
    call append( 6, "")                                                                                                             
    call append( 7, "#include <stdio.h>")
    call append( 8, "#include <string.h>")
    call append( 9, "")
    call append(10, "int main(int argc, char *argv[]) {")
    call append(11, "")
    call append(12, "    return 0;")
    call append(13, "}")


    echohl WarningMsg | echo "Successful in adding the main function." | echohl None
endfunction
"更新最近修改時間和文件名
function UpdateTitle_main()
    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 main function." | echohl None
endfunction
"判斷前10行代碼裏面,是否有COPYRIGHT NOTICE這個單詞,
"如果沒有的話,代表沒有添加過作者信息,需要新添加;
"如果有的話,那麼只需要更新即可
function TitleDet_main()
    let n = 1
    "默認爲添加
        let line = getline(n)
        "let str = '^/\* COPYRIGHT NOTICE$'
        let str = '^/\* 版權聲明$'                                                                                                  
        if line =~ str
            call UpdateTitle_main()
            return
        endif
    call AddTitle_main()
endfunction

""""""""""""""""""""""""""""""""""""""""""""""""""
""快捷鍵F6,生成.h文件模板
map <F6> :call TitleDet_h()<cr>'s
function AddTitle_h()
    "call append( 0, "/* COPYRIGHT NOTICE")
    call append( 0, "\/* 版權聲明")
    call append( 1, " * 功能     :")
    call append( 2, " * 作者     :lsy")
    call append( 3, " * 文件路徑 : ".expand("%:p:h")."/".expand("%:t"))
    call append( 4, " * 創建時間 :".strftime("%Y/%m/%d %H:%M"))
    call append( 5, " *\/")
    call append( 6, "")
    call append( 7, "#ifndef ")
    call append( 8, "#define ")
    call append( 9, "")
    call append(10, "")
    call append(11, "")
    call append(12, "#endif")

    echohl WarningMsg | echo "Successful in adding the .h file." | echohl None
endfunction
"更新最近修改時間和文件名
function UpdateTitle_h()
    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 .h file." | echohl None                                                    
endfunction
"判斷前10行代碼裏面,是否有COPYRIGHT NOTICE這個單詞,
"如果沒有的話,代表沒有添加過作者信息,需要新添加;
"如果有的話,那麼只需要更新即可
function TitleDet_h()
    let n = 1
    "默認爲添加
        let line = getline(n)
        "let str = '^/\* COPYRIGHT NOTICE$'
        let str = '^/\* 版權聲明$'
        if line =~ str
            call UpdateTitle_h()
            return
        endif
    call AddTitle_h()                                                                                                               
endfunction

然後保存退出即可使用快捷鍵:(注意所有文件都以第一行的“版權聲明”爲關鍵字,若已存在該關鍵字,則不會插入模板)
F4:插入文件頭註釋
F5:插入main函數模板
F6:插入.h文件框架模板

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章