vim实现自动添加相应的脚本信息
描述:一般情况下为了规范脚本,会在开头的位置注释写上作者的信息,写脚本的时间,脚本的功能等等信息
在centos 7.4的系统下所做的操作,使用root身份进行修改/etc/vimrc的文件,在文件末尾添加如下的代码
[root@x ~]# vim /etc/vimrc
" Vim auto generate script info
map <F4> ms:call AddAuthor()<cr>'s
function AddAuthor()
let n=1
while n < 5
let line = getline(n)
if line =~'^\s*\*\s*\S*Last\s*modified\s*:\s*\S*.*$'
call UpdateTitle()
return
endif
let n = n + 1
endwhile
call AddTitle()
endfunction
function UpdateTitle()
normal m'
execute '/* Last modified\s*:/s@:.*$@\=strftime(": %Y-%m-%d %H:%M")@'
normal "
normal mk
execute '/* Filename\s*:/s@:.*$@\=": ".expand("%:t")@'
execute "noh"
normal 'k
echohl WarningMsg | echo "Successful in updating the copy right." | echohl None
endfunction
function AddTitle()
call append(0,"#!/usr/local/python3/bin/python3")
call append(1,"############################################################")
call append(2,"# Author : Reid")
call append(3,"# Email : 122@163.com")
call append(4,"# Last modified : ".strftime("%Y-%m-%d %H:%M"))
call append(5,"# Filename : ".expand("%:t"))
call append(6,"# Description : ")
call append(7,"###########################################################")
echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
endfunction
解释:
将键盘上的F4功能键映射为添加作者信息的快捷键,4功能键映射为AddAuthor()函数,按下F4时,将调用AddAuthor()函数

添加AddAuthor()函数,函数的功能是判断文件前5行内容是否有Last modified这个单词,如果没有,代表没有添加过作者信息,需要新添加;如果有只需更新这个单词后的文件更改时间即可

AddAuthor()函数中,用到了另外两个函数:UpdateTitle()更新更改时间函数和AddTitle()新添加作者信息函数,添加UpdateTitle()更新更改时间函数,在AddAuthor()函数判断文件前五行内容中出现Last modified字符后,将执行此函数进行更新时间

添加AddTitle()新添加作者信息函数,在AddAuthor()函数判断文件前五行内容中没有出现Last modified字符,将执行此函数进行添加作者信息,此函数需要设置作者信息的内容,可自行设置,但必须要有” Last modified”信息行,且此行必须在前5行内,否则AddAuthor()函数在前5行判断不到此条信息,那么每按一次F4都将添加作者信息

保存退出后可以测试如下,打开一个新文件时,按下F4键

简单建议模板
[root@node1 ~]# vim /etc/vimrc 28 autocmd BufNewFile *.spec 0r /usr/share/vim/vimfiles/template.spec 29 autocmd BufNewFile *.sh 0r /usr/share/vim/vimfiles/template.sh 30 autocmd BufNewFile *.py 0r /usr/share/vim/vimfiles/template.py [root@node1 ~]# cat /usr/share/vim/vimfiles/template.sh #!/usr/bin/bash [root@node1 ~]# cat /usr/share/vim/vimfiles/template.py #!/usr/bin/python

浙公网安备 33010602011771号