vim设置自动添加头部注释

vim设置自动添加头部注释

在这里插入图片描述
作为一个运维在编写自动化脚本时,希望在脚本头部添加自己的作者信息,又或者版权信息,但是每写一个脚本就添加一遍注释,就显得自己很呆,本身工作就是做的自动化,结果还是劳心劳肺。

可以在vim中设置自动添加头部信息,将以下代码复制到/etc/vimrc文件的末尾即可将全局中的vim,也可以添加到用户目录下的.vimrc文件末尾(用户目录下没有文件,创建直接粘贴进去就可以)。

" 当新建 .h .c .hpp .cpp .mk .sh等文件时自动调用SetTitle 函数 autocmd BufNewFile *.[ch],*.hpp,*.cpp,Makefile,*.mk,*.sh exec ":call SetTitle()" " 加入注释
func SetComment()
        call append(line("."),   "* Copyright (C) ".strftime("%Y")." xxx All Rights Reserved.")   " 版权信息,xxx改为公司名或者作者名 call append(line(".")+1, "* ") call append(line(".")+2, "* File Name: ".expand("%:t")) " 脚本文件名
        call append(line(".")+3, "* Author : xxx https://www.csdn.com")     " xxx修改为作者信息,网站可以删除 call append(line(".")+4, "* Creation Date: ".strftime("%Y-%m-%d")) " 文件创建日期
        call append(line(".")+5, "* INFO :")                                     " 脚本说明信息 call append(line(".")+7, "*") endfunc " 加入shell,Makefile注释
func SetComment_sh()
        call setline(3, "# Copyright (C) ".strftime("%Y")." xxx All Rights Reserved.")  "版权信息,xxx改为公司或者作者名 call setline(4, "# ") call setline(5, "# File Name: ".expand("%:t")) " 脚本文件名
        call setline(6, "# Author : xxx https://www.csdn.com")     " xxx改为作者信息 call setline(7, "# Creation Date: ".strftime("%Y-%m-%d")) " 文件创建日期
        call setline(8, "# INFO :")                                     " 脚本说明信息 call setline(9, "# ") endfunc " 定义函数SetTitle,自动插入文件头
func SetTitle()
        if &filetype == 'make'
                call setline(1,"")
                call setline(2,"")
                call SetComment_sh()

        elseif &filetype == 'sh'
                call setline(1,"#!/bin/bash")  " 当以sh结尾的文件时,自动添加解释器 call setline(2,"") call SetComment_sh() else call SetComment() if expand("%:e") == 'hpp' call append(line(".")+10, "#ifndef _".toupper(expand("%:t:r"))."_H") call append(line(".")+11, "#define _".toupper(expand("%:t:r"))."_H") call append(line(".")+12, "#ifdef __cplusplus") call append(line(".")+13, "extern \"C\"")
                  call append(line(".")+14, "{")
                  call append(line(".")+15, "#endif")
                  call append(line(".")+16, "")
                  call append(line(".")+17, "#ifdef __cplusplus")
                  call append(line(".")+18, "}")
                  call append(line(".")+19, "#endif")
                  call append(line(".")+20, "#endif //".toupper(expand("%:t:r"))."_H")

             elseif expand("%:e") == 'h'
                call append(line(".")+10, "#pragma once")
             elseif &filetype == 'c'
                call append(line(".")+10,"#include \"".expand("%:t:r").".h\"")
             elseif &filetype == 'cpp'
                call append(line(".")+10, "#include \"".expand("%:t:r").".h\"")
             endif
        endif
endfun

效果如下:

#!/bin/bash

# Copyright (C) 2021 小胖宇 All Rights Reserved.
# 
# File Name: test.sh
# Author : 小胖宇 https://blog.csdn.net/weixin_46152207?spm=1001.2014.3001.5343
# Creation Date: 2021-04-13
# INFO :
#
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101779.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • risc系统服务器,RISC架构三款处理器

    risc系统服务器,RISC架构三款处理器富士通在去年8月份的HotChips24大会上发布了其Sparc架构的16核处理器Sparc64-X,与此同时,甲骨文也发布了同样为Sparc架构的16核心处理器SparcT5,IBM的Power7+也是在此次大会上发布的。HotChips24三款CPU主题演讲IBM的Power7+采用的32nm支持工艺,8核心,最高主频超过5GHz,已经在IBM大型机ZzEnterpriseEC1…

    2022年10月22日
  • JS后退一页

    JS后退一页Javascript返回上一页:1.history.go(-1),返回两个页面:history.go(-2);2.history.back().3.window.history.forward()返回下一页4.window.history.go(返回第几页,也可以使用访问过的URL)例:向上一页response.Write(“”) response.W

  • 每天进步一点点——五分钟理解一致性哈希算法(consistent hashing)[通俗易懂]

    每天进步一点点——五分钟理解一致性哈希算法(consistent hashing)[通俗易懂]五分钟让你深入了解分布式系统中常用的一致性哈希算法

  • java中遍历数组_java循环取数组值

    java中遍历数组_java循环取数组值第一种方法(传统方法)inta[]={1,2,3,4,5};for(inti=0;i<a.length;i++){System.out.println(a[i]);}第二种方法(非传统方法)inta[]={1,2,3,4,5};for(inti:a){System.out.println(i);}注意:其中i的数据类型要和数组a的数组类型保持一致。第三种方…

  • 代理重加密算法_凯撒密码采用三重加密技术

    代理重加密算法_凯撒密码采用三重加密技术1、研究背景作用:密文云数据动态共享基于用户数据隐私性考虑,用户存放在云端的数据都是加密形式存在的。而云环境中存在着大量数据共享的场景。由于数据拥有者对云服务提供商并不完全信任,不能将解密密文的密钥发送给云端,由云端来解密并分享出去。数据拥有者自己下载密文解密后,再用数据接收方的公钥加密并分享,无疑给数据拥有者带来很大的麻烦,同时也失去了云端数据共享的意义。代理重加密可以在不泄漏数据拥…

  • 我是如何学习Android源码的

    我是如何学习Android源码的一连很长时间(从2017/06/09到2017/06/26)都在研究蓝牙,而且这只是文章发表的时间,再加上组织文章和研究的时间,不知不觉中就坚持这么久………,也写了蓝牙的三篇博客,而且篇幅很长如下:在这里就不放文章链接了,有需要的在我的文章中搜索即可,现在,是时候放空一下,给自己充充电了,来张美景,欣赏一下北京的晚霞。言归正传,先放上Android源码连接地址Android源码,至于研究源码的好处,

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号