配置vim在源代码中自动添加作者信息

每个程序员都有自己心爱的代码编辑和查看工具,相信不少Linux下的程序员都喜欢用Vim,尽管Vim没有SourceInsight这种依托于桌面环境的编辑器看起来那样强大,但是Vim的高效、简洁以及强大的可配置性都让它吸引了无数忠实的fans。

很多编辑器都支持在源代码中自动添加作者信息的功能,SourceInsight就有这项功能。Vim默认是没有这个功能,但是只要我们稍作配置,就可以实现这个功能了。

在Linux下我们需要修改Vim的配置文件vimrc,位于:
/etc/vim/vimrc, 然后在配置文件最后添加如下信息,就可以实现在源代码中自动添加作者信息了:

    此配置文件只分三个部分:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
"此代码是的中文无需复制"
"第一部分
"将键盘上的F4功能键映射为添加作者信息的快捷键
map <F4> ms:call TitleDet()<cr>'s
function AddTitle()
    call append(0,"##############################################")
    call append(1,"#")
    call append(2,"# Author: jinguangping - jingguangping@qq.com")
    call append(3,"#")
    call append(4,"# QQ : 407576293")
    call append(5,"#")
    call append(6,"# Last modified: ".strftime("%Y-%m-%d %H:%M"))
    call append(7,"#")
    call append(8,"# Filename: ".expand("%:t"))
    call append(9,"#")
    call append(10,"# Description: ")
    call append(11,"#!/bin/bash")
    echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
endfunction
"此处为预显示的格式
"第二部分
"更新最近修改时间和文件名
function UpdateTitle()
    normal m'
    execute '/# *Last modified:/s@:.*$@\=strftime(":\t%Y-%m-%d %H:%M")@'
    normal ''
    normal mk
    execute '/# *Filename:/s@:.*$@\=":\t\t".expand("%:t")@'
    execute "noh"
    normal 'k
    echohl WarningMsg | echo "Successful in updating the copy right." | echohl None
endfunction
"第三部分
"判断前10行代码里面,是否有Last modified这个单词(为更新时间的依据),
"如果没有的话,代表没有添加过作者信息,需要新添加;
"如果有的话,那么只需要更新即可
function TitleDet()
    let n=1
    while n < 10
        let line = getline(n)
        if line =~ '^\#\s*\S*Last\smodified:\S*.*$'
            call UpdateTitle()
            return
        endif
        let n = n + 1
    endwhile
    call AddTitle()
endfunction

   将此三部份写到/etc/vimrc的末尾即可(注:中文不要复制)

   使用vim 文件名,在默认模式下按F4,就会出现下面的结果,写完或修改后,回到默认模式下,再按一次就会将时间修改了

这是在我电脑上运行的结果:

wKiom1L_qtexF9YAAACN7n8f3F0235.jpg

      PS:

                刚开始学写shell脚本,在网上找了好多,最接近正解的是:可以正常运行,但会在vim的默认格式中每一次都会提示:

               E20: mark not set

               在谷哥的帮助下找到了解决办法:

               地址为:

                            http://www.cnblogs.com/jianyungsun/archive/2011/02/14/1954057.html

                小生菜鸟一只,欢迎各种砖头瓦块a_c










本文转自 jinlinger 51CTO博客,原文链接:http://blog.51cto.com/essun/1359494,如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257004.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu系统盘制作

1、首先打开UltraISO软件&#xff0c;尽量下载最新版的&#xff0c;小编曾用某个旧版的UltraISO&#xff0c;制作的安装盘&#xff0c;不能不能识别磁盘&#xff0c;安装失败! 2、点击工具栏中的第二个打开镜像文件工具&#xff0c;如图红色方框标志按钮&#xff0c;然后在打开…

RH131 网络配置

ip addr show 查看当前网络地址 ip link show 查看网络链接状态 ip -s link show 查看网卡统计信息 ip addr add 192.168.0.154 添加ip地址 ip link dev eth0 down 禁用ip地址 网卡的配置文件/etc/sysconfig/network-scripts/ifcfg-ethx 自动专用地址&#xff1a;169.254.*.* …

学习笔记02:直播串讲02

1.基于模型的学习 根据以往的学习经验&#xff0c;建立起输入输出的模型&#xff0c;然后预测输入&#xff0c;并且将输入带入到模型中&#xff0c;进而预测出输出的结果&#xff0c;这种学习称为基于模型的学习 2.机器学习的过程 1&#xff09;数据收集&#xff1a;通过爬虫、…

Dojo仪表板

Dojo它提供了一个良好的仪表板显示器&#xff0c;的影响&#xff0c;如以下&#xff1a; <!DOCTYPE html> <html> <head><title>Dojo仪表盘</title><meta charset"utf-8"><script src"http://192.168.240.186/arcgis_js…

Exchange2013恢复已删除用户邮箱

上一篇文章我们讲到了如何恢复已禁用的邮箱。但是在微软的Exchange中&#xff0c;禁用邮箱和删除邮箱毕竟是两个截然不同的概念&#xff0c;这篇文章我们就来看看如何恢复已删除的邮箱。 1.依然是新建用户“张三”&#xff0c;然后给其发一封邮件&#xff0c;作为后续邮箱数据恢…

调用异步服务时的超时处理

主线程调用异步服务后&#xff0c;通过设定主线程的等待时间来进行超时处理。Demo如下&#xff1a;AsyncTask.cs 1 using System;2 using System.Threading.Tasks;3 using MyCSharp.ExternalService;4 5 namespace MyCSharp.Grammas6 {7 public class AsyncTask8 {9 …

学习笔记(24):Python网络编程并发编程-进程与线程的区别

立即学习:https://edu.csdn.net/course/play/24458/296438?utm_sourceblogtoedu 线程与进程的区别&#xff1a; 1.消耗区别&#xff1a;进程>线程 1&#xff09;进程运行结果 #进程运行 from multiprocessing import Process def task(name):print("我是%s"%na…

Codeforces Beta Round #1

A /*************************************************************************> File Name: A.cpp> Author: opas_chenxin> Mail: 1017370773qq.com > Created Time: 2016年05月06日 星期五 02时22分23秒 ************************************************…

进程控制块PCB结构体 task_struct 描述

进程控制块&#xff0c;英文名&#xff08;Processing Control Block&#xff09;&#xff0c;简称 PCB 。 进程控制块是系统为了管理进程设置的一个专门的数据结构&#xff0c;主要表示进程状态。 每一个进程都对应一个PCB来维护进程相关的信息&#xff1b; 在Linux中&#xf…

学习笔记(25):Python网络编程并发编程-Thread其他属性和守护线程

立即学习:https://edu.csdn.net/course/play/24458/296440?utm_sourceblogtoedu 1.Thread其他的属性 CurrentThread().getName():获得当前线程的名字 t.is_Alive:判断线程是否还在运行 t.join():等待线程运行结束再执行join后面的代码 t.setName("name"):为线程…

学习笔记(26):Python网络编程并发编程-GIL与自定义互斥锁的区别

立即学习:https://edu.csdn.net/course/play/24458/296443?utm_sourceblogtoedu 1.GIL的基本概念 答&#xff1a;GIL本质上就是一把锁&#xff0c;只是他是一把在python解释器上的锁 2.GIL与互斥锁的区别 答&#xff1a; 1&#xff09;GIL保护的是在python解释器上的参数&a…

2014年最具人气国外WORDPRESS主题

在国外&#xff0c;WrodPress这个博客系统极为受欢迎&#xff0c;使用WordPress来建站可以降低很多成本&#xff0c;另外还能以十分便宜的价格获得一个漂亮的WP网站模板。 今天向大家分享来自Themeforest 2014年最具人气的高级WrodPress主题&#xff0c;这些主题无论是设计还是…

开源视觉salm算法介绍

当前的开源SLAM方案 开源方案传感器形式地址链接MonoSLAM单目https://github.com/hanmekim/SceneLib2 PTAM单目 http://www.robots.ox.ac.uk/~gk/PTAM/ORB-SLAM 单目为主http://webdiis.unizar.es/~raulmur/orbslam/ORB-SLAM2单目https://github.com/raulmur/ORB_SLAM2LSD-SLAM…

学习笔记(27):Python网络编程并发编程-GIL与多线程

立即学习:https://edu.csdn.net/course/play/24458/296444?utm_sourceblogtoedu GIL与多线程 1.须知&#xff1a; 1&#xff09;cpu主要是为了提升计算性能&#xff0c;增加CPU提升计算性能&#xff1b; 2&#xff09;每一个CPU一旦遇到阻塞状态都会处于等待状态&#xff0c…

J0ker的CISSP之路:复习-Access Control(3)

本文同时发表在&#xff1a;[url]http://netsecurity.51cto.com/art/200801/63649.htm[/url] 在《J0ker的CISSP之路》系列的上一篇文章里&#xff0c;J0ker给大家介绍了访问控制CBK里面一些常见的破坏信息资产保密性的威胁类型&#xff0c;那么什么类型的威胁会破坏信息资产的完…

最优化课堂笔记01: 第一章 最优化的基本概念

第一章 最优化的基本概念 1.最优化求解的数学模型建立 2.例题&#xff08;考试第一大题&#xff1a;数学模型建立&#xff09; 解析&#xff1a;优化变量、目标函数&#xff08;一般取最小化&#xff09;、约束条件 注意&#xff1a; 1&#xff09;约束条件一般形式为&#…

EIGRP非等价负载均衡

1、等价负载均衡 当到达目的地有多条路径时&#xff0c;而有多条路径的metric值一样&#xff0c;这时就可以做等价负载均衡&#xff0c;让数据包均衡转发&#xff0c;不过要看该路由器的转发方式&#xff0c;如果是快速转发方式&#xff0c;这种方式无用&#xff08;本地产生的…

ubuntu100%快速安装搜狗输入法

1、进入搜狗官方网站&#xff0c;下载最新版本的for ubuntu输入法deb安装包 2、下载完成以后&#xff0c;进入下载好的文件目录&#xff0c;在空白处点击鼠标右键&#xff0c;打开终端 在终端窗口输入如下的指令开始安装搜狗拼音输入法。 #sudo dpkg -i sogoupinyin_2.2.0.01…

最优化课堂笔记02:第二章 线性规划

第二章 线性规划&#xff08;重点&#xff1a;单纯形法&#xff09; 1.线性规划问题及其模型&#xff08;重点&#xff1a;标准形式&#xff09; 题型&#xff1a;是否为标准形式&#xff1f;不是的话化为标准形式&#xff01; 1&#xff09;问题的提出 提出问题&#xff1…

客户端是选择Java Swing还是C# Winform

登录 | 注册 mentat的专栏 目录视图摘要视图订阅【专家问答】韦玮&#xff1a;Python基础编程实战专题 【知识库】Swift资源大集合 【公告】博客新皮肤上线啦 快来领福利&#xff1a;C币、机械键盘 客户端是选择Java Swing还是C# Winform 标签&#xff1a; swi…