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