VIM中自动添加文件信息

通过Vim创建文件时,有时需要在文件前面加上版权、作者、创建时间等信息

修改/etc/vim/vimrc 在最后添加下面代码


"add by zhangjj
autocmd BufNewFile *.c,*.h,*.sh exec "call AddTitle()"
function AddTitle()
if &filetype=='sh'
call append( 0, "\#!/bin/bash")
call append( 1, "#")
call append( 2, "#  COPYRIGHT NOTICE")
call append( 3, "#  Copyright (C) 2016 HuaHuan Electronics Corporation, Inc. All rights reserved")
call append( 4, "#")
call append( 5, "#  Author              :Kevin_fzs")
call append( 6, "#  File Name           :".expand("%:p:h")."\/".expand("%:t"))
call append( 7, "#  Create Date         :".strftime("%Y/%m/%d %H:%M"))
call append( 8, "#  Last Modified       :".strftime("%Y/%m/%d %H:%M"))
call append( 9, "#  Description         :")
call append(10, "#")
call append(11, "")
else
call append( 0, "/*")
call append( 1, "*  COPYRIGHT NOTICE")
call append( 2, "*  Copyright (C) 2016 HuaHuan Electronics Corporation, Inc. All rights reserved")
call append( 3, "*")
call append( 4, "*  Author              :Kevin_fzs")
call append( 5, "*  File Name           :".expand("%:p:h")."\/".expand("%:t"))
call append( 6, "*  Create Date         :".strftime("%Y/%m/%d %H:%M"))
call append( 7, "*  Last Modified       :".strftime("%Y/%m/%d %H:%M"))
call append( 8, "*  Description         :")
call append( 9, "*/")
call append(10, "")
endif
echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
endfunction

 



map <F4> :call TitleDet() <cr>'s
"更新最近修改时间和文件名
function UpdateTitle()
normal m'
execute '/*Last Modified/s@:.*$@\=strftime(":%Y-%m-%d %H:%M")@'
normal ''
normal mk
execute '/*File Name/s@:.*$@\=":".expand("%:p:h")."\\".expand("%:t")@'
execute "noh"
normal 'k
echohl WarningMsg | echo "Successful in updating the copyright." | echohl None
endfunction
"判断前10行代码里面,是否有COPYRIGHT NOTICE这个单词,
"如果没有的话,代表没有添加过作者信息,需要新添加;
"如果有的话,那么只需要更新即可
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





  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值