VIM中自动添加文件信息

来源:互联网 发布:电信网络犯罪有哪些 编辑:程序博客网 时间:2024/06/05 11:49

通过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





0 0
原创粉丝点击