此篇是我在学习中做的归纳与总结,其中如果存在版权或知识错误请直接联系我,欢迎留言。
PS:本着知识共享的原则,此篇博客可以转载,但请标明出处!
Vim(gvim)默认没有添加文件头信息功能,但是只需要几行代码自己配置一下,我们一样可以让Vim(gvim)支持自动添加作者信息。
实现效果图:
按下F4,信息就自动给你添加到文件开头,如果已经存在头信息,那么vim会帮你自动更新到最新状态。
功能:
- 在已有文件添加文件头;
- 当修改文件后,可以修改文件的更新时间;
- 如果修改了文件名,可以同步修改对应的 文件名。
在 .vimrc 文件中添加:
map <F4> :call TitleDet()<cr>'s
function AddTitle()
call append(0,"`timescale 1ns / 1ps")
call append(1,"/*========================================FILE_HEADER=====================================")
call append(2,"# Author: Xuhuairuoshui")
call append(3,"#")
call append(4,"# Critical Timing: 2021- -")
call append(5,"#")
call append(6,"# Last modified: ".strftime("%Y-%m-%d %H:%M"))
call append(7,"#")
call append(8,"# Filename: ".expand("%:t"))
call append(9,"#")
call append(10,"# Description: " .expand("%:t"))
call append(11,"#")
call append(12,"# VERSION DATE AUTHOR DESCRIPTION")
call append(13,"# 1.0 2021-xx-xx Xuhuairuoshui initial")
call append(14,"#")
call append(15,"# Synthesizable : Vivado 18.2")
call append(16,"# FPGA Chip Model : XC7K325TFFG900-2")
call append(17,"#")
call append(18,"=========================================FILE_HEADER====================================*/")
echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
endf
"更新最近修改时间和文件名
function UpdateTitle()
normal m'
execute '/# *Last modified:/s@:.*$@\=strftime(":\t%Y-%m-%d %H:%M")@'
normal ''
normal mk
execute '/# *Filename:/s@:.*$@\=":\t\t".expand("%:t")@'
execute "noh"
normal 'k
echohl WarningMsg | echo "Successful in updating the copy right." | echohl None
endfunction
"判断前16行代码里面,是否有Last modified这个单词,
"如果没有的话,代表没有添加过作者信息,需要新添加;
"如果有的话,那么只需要更新即可
function TitleDet()
let n=1
"默认为添加
while n < 16
let line = getline(n)
if line =~ '^\#\s*\S*Last\smodified:\S*.*$'
call UpdateTitle()
return
endif
let n = n + 1
endwhile
call AddTitle()
endfunction