vim创建程序文件自动添加头部注释

修改 ~/.vimrc,在文件最后添加以下内容:

au BufNewFile *.[ch],*.[ch]pp exec ":call SetNewFileHeader()"
au BufNewFile *.mk,[Mm]akefile exec ":call SetNewFileHeader()"
au BufNewFile *.sh,*.py exec ":call SetNewFileHeader()"

" SetNewFileHeader for new buffer
func SetNewFileHeader()
	" set author_name here
	let $author_name = $USER

    if &filetype == 'make'
        call setline(1,  "####################################################")
		call setline(2,  "# Author      : ".$author_name )
        call setline(3,  "# Created date: ".strftime('%F %T'))
        call setline(4,  "####################################################")
        call setline(5,  "")
        call setline(6,  "#target: prerequisites ")
        call setline(7,  "#\tcommand")
        call setline(8,  "")

    elseif &filetype == 'sh'
        call setline(1,  "#! /bin/bash")
        call setline(2,  "#")
        call setline(3,  "####################################################")
        call setline(4,  "# Author      : ".$author_name )
        call setline(5,  "# Created date: ".strftime('%F %T'))
        call setline(6,  "####################################################")
        call setline(7,  "")

    elseif &filetype == 'python'
        call setline(1,  "#! /usr/bin/env python3")
        call setline(2,  "# coding=utf-8")
        call setline(3,  "####################################################")
        call setline(4,  "# Author      : ".$author_name )
        call setline(5,  "# Created date: ".strftime('%F %T'))
        call setline(6,  "####################################################")
        call setline(7,  "")
        call setline(8,  "if __name__ == '__main__':")
        call setline(9,  "    print(\"hello ".expand('%:t')."\")")
        call setline(10, "")

    else
		" set title for *.h,*.hpp,*.c,*.cpp
		call setline(1, "/*****************************************")
		call setline(2, " * Copyright (C) ".strftime('%Y')." * Ltd. All rights reserved.")
		call setline(3, " *")
		call setline(4, " * File name   : ".expand('%:t'))
		call setline(5, " * Author      : ".$author_name )
		call setline(6, " * Created date: ".strftime('%F %T'))
		call setline(7, " * Description : ")
		call setline(8, " *")
		call setline(9, " *******************************************/")
		call setline(10,"")

        if expand("%:e") == 'hpp'
            call append(line("$"), "#ifndef __".toupper(expand("%:t:r"))."_H__")
            call append(line("$"), "#define __".toupper(expand("%:t:r"))."_H__")
            call append(line("$"), "")
            call append(line("$"), "#include <iostream>")
            call append(line("$"), "#include <sstream>")
            call append(line("$"), "#include <string>")
            call append(line("$"), "#include <vector>")
            call append(line("$"), "#include <queue>")
            call append(line("$"), "#include <map>")
            call append(line("$"), "#include <memory>")
            call append(line("$"), "#include <algorithm>")
            call append(line("$"), "#include <chrono>")
            call append(line("$"), "#include <atomic>")
            call append(line("$"), "#include <mutex>")
            call append(line("$"), "#include <condition_variable>")
            call append(line("$"), "#include <numeric>")
            call append(line("$"), "#include <functional>")
            call append(line("$"), "#include <future>")
            call append(line("$"), "#include <thread>")
            call append(line("$"), "")
            call append(line("$"), "")
            call append(line("$"), "#endif //__".toupper(expand("%:t:r"))."_H__")
            call append(line("$"), "")

        elseif expand("%:e") == 'h'
            call append(line("$"), "//#pragma once")
            call append(line("$"), "#ifndef __".toupper(expand("%:t:r"))."_H__")
            call append(line("$"), "#define __".toupper(expand("%:t:r"))."_H__")
            call append(line("$"), "")
            call append(line("$"), "#include <stdio.h>")
            call append(line("$"), "#include <stdlib.h>")
            call append(line("$"), "#include <string.h>")
            call append(line("$"), "")
            call append(line("$"), "#ifdef __cplusplus")
            call append(line("$"), "extern \"C\"")
            call append(line("$"), "{")
            call append(line("$"), "#endif")
            call append(line("$"), "")
            call append(line("$"), "")
            call append(line("$"), "#ifdef __cplusplus")
            call append(line("$"), "}")
            call append(line("$"), "#endif")
            call append(line("$"), "#endif //__".toupper(expand("%:t:r"))."_H__")
            call append(line("$"), "")

        elseif &filetype == 'c'
            call append(line("$"), "#define LOG_TAG \"".toupper(expand("%:t:r"))."\"")
            call append(line("$"), "#include \"".expand("%:t:r").".h\"")
            call append(line("$"), "")
            call append(line("$"), "#include <stdio.h>")
            call append(line("$"), "#include <stdlib.h>")
            call append(line("$"), "#include <string.h>")
            call append(line("$"), "")
            call append(line("$"), "int main(int argc, char *argv[]) {")
            call append(line("$"), "    (void)argc;")
            call append(line("$"), "    (void)argv;")
            call append(line("$"), "")
            call append(line("$"), "    return 0;")
            call append(line("$"), "}")
            call append(line("$"), "")

        elseif &filetype == 'cpp'
            call append(line("$"), "#define LOG_TAG \"".toupper(expand("%:t:r"))."\"")
            call append(line("$"), "#include \"".expand("%:t:r").".h\"")
            call append(line("$"), "")
            call append(line("$"), "#include <iostream>")
            call append(line("$"), "#include <sstream>")
            call append(line("$"), "#include <string>")
            call append(line("$"), "#include <vector>")
            call append(line("$"), "#include <queue>")
            call append(line("$"), "#include <map>")
            call append(line("$"), "#include <memory>")
            call append(line("$"), "#include <algorithm>")
            call append(line("$"), "#include <chrono>")
            call append(line("$"), "#include <atomic>")
            call append(line("$"), "#include <mutex>")
            call append(line("$"), "#include <condition_variable>")
            call append(line("$"), "#include <numeric>")
            call append(line("$"), "#include <functional>")
            call append(line("$"), "#include <future>")
            call append(line("$"), "#include <thread>")
            call append(line("$"), "")
            call append(line("$"), "int main(int argc, char *argv[]) {")
            call append(line("$"), "    (void)argc;")
            call append(line("$"), "    (void)argv;")
            call append(line("$"), "")
            call append(line("$"), "    return 0;")
            call append(line("$"), "}")
            call append(line("$"), "")

        endif

    endif
endfunc

该段配置的作用是

使用自动命令在新建文件是调用SetNewFileHeader函数,向buffer里面添加文本。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值