Vim中自动在程序起始处添加版权和作者信息
在编写程序的时候,经常需要在程序开始写上程序的简要介绍和作者信息,如下:

这种信息,除了文件名和修改时间可能经常发生变化外,其他基本不变,可以在程序开始自动加入,方法就是在家目录下的.vimrc中写入:
map <F4> :call TitleDet()<cr>
function AddTitle()
call append(,"\#!/usr/bin/env bash")
call append(,"# ******************************************************")
call append(,"# Author : 90Zeng")
call append(,"# Last modified: ".strftime("%Y-%m-%d %H:%M"))
call append(,"# Email : omezengjl@gmail.com")
call append(,"# Filename : ".expand("%:t"))
call append(,"# Description : ")
call append(,"# ******************************************************")
echohl WarningMsg | echo "Successful in adding 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".expand("%:t")@'
execute "noh"
normal 'k
echohl WarningMsg | echo "Successful in updating the copyright." | echohl None
endfunction function TitleDet()
let n=
while n <
let line = getline(n)
if line =~ '^\#\s*\S*Last\smodified\S*.*$'
call UpdateTitle()
return
endif
let n = n +
endwhile
call AddTitle()
endfunction


保存之后,vi test.sh,在norm 模式下按下F4即可,效果如下:

假如下一时刻,我们将文件名称改为了test2.sh,然后需要更新上面的信息,只需要:mv test.sh test2.sh, 然后vim test2.sh,F4,会自动更新修改时间和文件名称

如果我们经常需要写的python文件,那么在.vimrc中修改相应的字符即可,如下:

效果如下:

网上已经有插件实现了上述功能(http://www.vim.org/scripts/script.php?script_id=2902),但是对于安装插件不方便的场景,可以自己手动编写上述代码
Vim中自动在程序起始处添加版权和作者信息的更多相关文章
- vim中自动补全插件snipmate使用
vim中自动补全插件snipmate使用 1.下载snipMatezip:https://github.com/msanders/snipmate.vim/archive/master.zip 2.解 ...
- zblog去除底部版权信息 “请勿修改或删除主题版权及作者信息”
场景:使用了免费模板,但底部带作者版权.删除版权信息的代码后访问前台弹窗:请勿修改或删除主题版权及作者信息... 1. 删除版权信息代码 使用notepad++搜索功能,搜索版权信息:如ABC,找到相 ...
- 在Python命令行和VIM中自动补全
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1. VIM下的配置: wget https://github.com/rkulla/pydiction/arc ...
- vim中自动格式化代码
1,gg 跳转到第一行 2,shift+v 转到可视模式 3,shift+g 全选 4,按下神奇的 =
- windows命令行 批量对源代码添加版权头/头信息
简短精悍的代码,特别适合开源项目使用. for /r %%F in (*.as) DO ( move "%%F" tmp.txt type copyright.txt > & ...
- 【转】vim中多标签和多窗口的使用
原文:https://my.oschina.net/kutengshe/blog/464602 ---------------------------------------------------- ...
- vim中project多标签和多窗口的使用
1.打开多个窗口 打开多个窗口的命令以下几个: 横向切割窗口 :new+窗口名(保存后就是文件名) :split+窗口名,也可以简写为:sp+窗口名 纵向切割窗口名 :vsplit+窗口名,也可以简写 ...
- ASP.NET Core中实现单体程序的事件发布/订阅
标题:ASP.NET Core中实现单体程序的事件发布/订阅 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/10468058.html 项目源代码: ...
- [linux] vim在源代码中自动添加作者信息(转载)
原文出处: http://www.vimer.cn/2009/10/用vim在源代码中添加你的个人信息.html vim ~/.vimrc "进行版权声明的设置 "添加或更新头 m ...
随机推荐
- hdu 5126 stars (四维偏序,离线,CDQ套CDQ套树状数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5126 思路:支持离线,那么我们可以用两次CDQ分治使四维降为二维,降成二维后排个序用树状数组维护下就好 ...
- Hdoj 1008.Elevator 题解
Problem Description The highest building in our city has only one elevator. A request list is made u ...
- [luogu4513]小白逛公园
题目描述 在小新家附近有一条"公园路",路的一边从南到北依次排着n个公园,小白早就看花了眼,自己也不清楚该去哪些公园玩了. 一开始,小白就根据公园的风景给每个公园打了分-.-.小新 ...
- Internet Explorer 10 administration IE10管理
http://4sysops.com/archives/internet-explorer-10-administration-part-1-overview/ http://4sysops.com/ ...
- 【转】__int64 与long long 的区别
//为了和DSP兼容,TSint64和TUint64设置成TSint40和TUint40一样的数 //结果VC中还是认为是32位的,显然不合适 //typedef signed long int ...
- 求n(n>=2)以内的质数/判断一个数是否质数——方法+细节优化
#include <stdio.h> #include <stdlib.h> //判断i是否质数,需要判断i能否被(long)sqrt(i)以内的数整除 //若i能被其中一个质 ...
- 拦截器的使用,配置手机浏览器访问的h5页面
package com.thinkgem.jeesite.modules.sys.interceptor; import javax.servlet.http.HttpServletRequest; ...
- (大数)Computer Transformation hdu1041
Computer Transformation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/ ...
- centos中文字符集,中文日志
# CentOS 7 $ firewall-cmd --zone=public --add-port=80/tcp --permanent # nginx 端口 $ firewall-cmd --zo ...
- 为什么要用redis
服务端的程序如何去识别客户端的状态: http是没有状态的,比如说用户A访问了服务器程序,那服务器如何知道下一次访问的时候还是A呢,这里就要用到session, 这个session是服务器的sessi ...