Vim8中Verilog开发添加/更新文件头设置

        此篇是我在学习中做的归纳与总结,其中如果存在版权或知识错误请直接联系我,欢迎留言。
        PS:本着知识共享的原则,此篇博客可以转载,但请标明出处!

        Vim(gvim)默认没有添加文件头信息功能,但是只需要几行代码自己配置一下,我们一样可以让Vim(gvim)支持自动添加作者信息。

        实现效果图:

         按下F4,信息就自动给你添加到文件开头,如果已经存在头信息,那么vim会帮你自动更新到最新状态。

功能:

  1. 在已有文件添加文件头;
  2. 当修改文件后,可以修改文件的更新时间;
  3. 如果修改了文件名,可以同步修改对应的 文件名。

        在 .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

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚怀若水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值