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文件框架模板

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值