vim根据不同的文件名后缀生成头部注释
2018-01-12 00:37
1871 查看
自动创建文件头部注释的脚本
自动更新文件的修改时间
此脚本目前支持这些后缀:.cc, .sh, .java, .cpp, .h, .hpp, .py, .lua
编辑
编辑
自动更新文件的修改时间
此脚本目前支持这些后缀:.cc, .sh, .java, .cpp, .h, .hpp, .py, .lua
自动创建文件头部注释的脚本
把脚本保存为file_format.vim, 并存放在~/.vim/macros/目录下;
编辑
~/.vimrc文件,在文件末尾加入
run macros/file_format.vim,即可
autocmd BufNewFile *.cc,*.sh,*.java,*.cpp,*.h,*.hpp,*.py,*.lua exec ":call SetTitle()" "新建.cc,.java,.sh,.cpp,.h, .hpp, """定义函数SetTitle,自动插入文件头 func SetTitle() let filetype_name = strpart(expand("%"), stridx(expand("%"), ".")) let file_name = strpart(expand("%"), 0, stridx(expand("%"), ".")) if file_name =~ "\/" let file_name = strpart(file_name, strridx(file_name, "/") + 1) endif let time_value = strftime("%Y-%m-%d %H:%M:%S") if filetype_name == ".sh" call setline(1, "\#!/bin/bash") call append(line("."), "") call append(line(".")+1, "\#########################################################################") call append(line(".")+2, "\# File Name: ". file_name . filetype_name) call append(line(".")+3, "\# Created on: ".time_value) call append(line(".")+4, "\# Author: glendy") call append(line(".")+5, "\# Last Modified: ".time_value) call append(line(".")+6, "\# Description: ") call append(line(".")+7, "\#########################################################################") call append(line(".")+8, "") else if filetype_name == ".lua" call setline(1, "\--lua") call append(line("."), "") call append(line(".")+1, "\--#########################################################################") call append(line(".")+2, "\--# File Name: ". file_name . filetype_name) call append(line(".")+3, "\--# Created on: ".time_value) call append(line(".")+4, "\--# Author: glendy") call append(line(".")+5, "\--# Last Modified: ".time_value) call append(line(".")+6, "\--# Description: ") call append(line(".")+7, "\--#########################################################################") call append(line(".")+8, "") call append(line(".")+9, file_name . " = {}") call append(line(".")+10, file_name .".__index = ". file_name) call append(line(".")+11, "function ". file_name .":new()") call append(line(".")+12, " local o = {}") call append(line(".")+13, " self.__index = self") call append(line(".")+14, " setmetatable(o, self)") call append(line(".")+15, " \-- construct function code here") call append(line(".")+16, " return o") call append(line(".")+17, "end") call append(line(".")+18, "function ". file_name .":hotfix()") call append(line(".")+19, " setmetatable(self, ". file_name .")") call append(line(".")+20, "end") call append(line(".")+21, "") call append(line(".")+22, "return ". file_name) else if filetype_name == ".py" call setline(1, "\# -*- coding: utf-8 -*-") call append(line("."), "") call append(line(".")+1, "\#########################################################################") call append(line(".")+2, "\# File Name: ". file_name . filetype_name) call append(line(".")+3, "\# Created on : ".time_value) call append(line(".")+4, "\# Author: glendy") call append(line(".")+5, "\# Last Modified: ".time_value) call append(line(".")+6, "\# Description:") call append(line(".")+7, "\#########################################################################") call append(line(".")+8, "") else call setline(1, "\/*") call append(line("."), " * File Name: ". file_name . filetype_name) call append(line(".")+1, " * ") call append(line(".")+2, " * Created on: ".time_value) call append(line(".")+3, " * Author: glendy") call append(line(".")+4, " * ") call append(line(".")+5, " * Last Modified: ".time_value) call append(line(".")+6, " * Description: ") call append(line(".")+7, " */") call append(line(".")+8, "") if filetype_name == ".h" call append(line(".")+9, "#ifndef _". toupper(file_name) . substitute(toupper(filetype_name), ".", "_", "") ."_") call append(line(".")+10, "#define _". toupper(file_name) . substitute(toupper(filetype_name), ".", "_", "") ."_") call append(line(".")+11, "") call append(line(".")+12, "class " . file_name) call append(line(".")+13, "{") call append(line(".")+14, "public:") call append(line(".")+15, "") call append(line(".")+16, "protected:") call append(line(".")+17, "") call append(line(".")+18, "};") call append(line(".")+19, "") call append(line(".")+20, "#endif //". toupper(file_name) . substitute(toupper(filetype_name), ".", "_", "") ."_") endif endif endif endif endfunc
自动更新文件的修改时间
把脚本保存为file_modify.vim, 并存放在~/.vim/macros/目录下;
编辑
~/.vimrc文件,在文件末尾加入
run macros/file_modify.vim,即可
" modify the last modified time of a file function SetLastModifiedTime(lineno) let modif_time = strftime("%Y-%m-%d %H:%M:%S") if a:lineno == "-1" let line = getline(7) else let line = getline(a:lineno) endif if line =~ '\sLast Modified:' let line = strpart(line, 0, stridx(line, ":")) . ": " . modif_time endif if a:lineno == "-1" call setline(7, line) else call append(a:lineno, line) endif endfunc " map the SetLastModifiedTime command automatically autocmd BufWrite *.cc,*.sh,*.java,*.cpp,*.h,*.hpp,*.py,*.lua call SetLastModifiedTime(-1)
相关文章推荐
- Vim 配置文件 并生成 注释文件头部
- vim 根据不同目录设置不同的vimrc
- 使用Sl4j+Logback根据不同日志级别生成文件
- 根据文件的路径 分割文件名 文件后缀
- 要求根据RandomStr.java:使用类型转换生成六位验证字符串,示例程序每次运 行时,都会生成不同的字符串。
- PowerDesigner 12.5 开启注释列 将Comment(注释)及Name(名称)内容互相COPY的VBS代码 根据名称生成注释(完整示例)
- ASP.NET Web API根据代码注释生成Help文档
- vim创建程序文件自动添加头部注释
- 使用T4模板为EF框架添加实体根据数据库自动生成字段注释的功能
- android eclipse 根据屏幕密度自动生成不同分辨率的图片
- PowerDesigner 12.5 开启注释列 将Comment(注释)及Name(名称)内容互相COPY的VBS代码 根据名称生成注释(完整示例)
- vim生成注释插件
- c#根据绝对路径获取 带后缀文件名、后缀名、文件名
- MVC扩展控制器工厂,通过实现IControllerFactory,根据action名称生成不同的Controller
- 配置Vim为创建不同类型的文件添加注释
- SublimeText用FileHeader给代码文件生成头部注释
- .net 实战 根据configuration选项生成不同的config文件
- c#根据绝对路径获取 带后缀文件名、后缀名、文件名
- 获取设备id imei uuid mac地址 以及根据不同的id 生成uuid
- c#根据绝对路径获取 带后缀文件名、后缀名、文件名