vim F7添加作者信息,文件修改完更改最后时间

“”红色字体都是附加注释,使用时,在不改动文章格式的情况下,过滤红色部分就可以了,采用的也是vim脚本的双引号注释。

“”多方参考,亮点是  let newtime = "##last modified : ".strftime("%Y-%m-%d %H:%M:%S")。

“”因为其它方法都是寻找last modified然后去修改,我这里是直接替换这行的文字。

“”使用了substitute函数,不过网上的资料太少了,然后我去vim说明手册里去查,结果也没有收获,因为它的函数讲解和c

“”语言的不同,没有那么细。

“”第一个函数 FileHead()没什么可说的,第二个函数SetLastModifiedTimes()觉得比较实用。

“”可以终端输入##vim,然后输入:help append和:help substitute,可查看这两个函数的说明手册。

""autocmd BufNewFile *.c exec ":call FileHead()"
map <F7> :call FileHead()<CR>5k
function FileHead()
    call append( 0,"/**************************************************")
    call append( 1,"##filename      : ".expand("%:t")                   )
    call append( 2,"##author        : GYZ                              ")
    call append( 3,"##e-mail        : [email protected]                ")
    call append( 4,"##create time   : ".strftime("%Y-%m-%d %H:%M:%S")   )
    call append( 5,"##last modified : ".strftime("%Y-%m-%d %H:%M:%S")   )
    call append( 6,"##description   : NA                               ")
    call append( 7,"**************************************************/")
    call append( 8,"#include <stdio.h>                                ")
    call append( 9,"#include <stdlib.h>                                ")
    call append(10,"#include <string.h>                                ")
    call append(11,"                                                   ")
    call append(12,"                                                   ")
    call append(13,"int main(int argc,char *argv[])                    ")
    call append(14,"{                                                  ")
    call append(15,"                                                   ")
    call append(16,"    return 0;                                      ")
    call append(17,"}                                                  ")
    call append(18,"                                                   ")
    call append(19,"                                                   ")
    echo
endfunction

“”-------------------------------------------------------------------------------------------------------------------------------------------------------------------

function SetLastModifiedTimes()    

“”line1:
    let line = getline(6)                        
    let newtime = "##last modified : ".strftime("%Y-%m-%d %H:%M:%S")

“”line2:
   let repl = substitute(line,".*$",newtime,"g")

    call setline(6,repl)
endfunction

“”line3:
autocmd BufWrite *.c call SetLastModifiedTimes()

line1:获取第6行的字符数据;

line2:等同于:s/.*$/aaa/g,  用aaa整体替换该行,“”.*$这个参数的怎么写,我可是真正找了一天,才偶然发现的,也就是说整体替换,全文这个地方算是个人觉得比较费劲的地方;

line3:这个地方是在文件关闭时,调用修改函数时间。

猜你喜欢

转载自blog.csdn.net/weixin_39465823/article/details/81147873
今日推荐