前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vim设置自动添加头部注释

vim设置自动添加头部注释

作者头像
互联网-小阿宇
发布2022-11-21 20:25:50
1.3K0
发布2022-11-21 20:25:50
举报
文章被收录于专栏:互联网-小阿宇
在这里插入图片描述
在这里插入图片描述

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

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

代码语言:javascript
复制
" 当新建 .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

效果如下:

代码语言:javascript
复制
#!/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     :
#
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档