自动添加注释

简介:
 程式的时候给代码 注释 有时候蛮烦人的,尤其是用英文写 注释 的时候,但是养成写 注释 的习惯,对日后代码的维护还是很有帮助的,一般脚本的开头会注明编写时间,版本,用途等说明。
VIM  里面能够使用映射(map)来帮您 自动 插入这些信息,就像下面这样
#****************************************************
#         Author: Muddyboot - toobyddum@gmail.com
#  Last modified: 2007-08-10 21:19
#       Filename: /etc/vimrc
#    Description: Configuration for  vim  editor
#****************************************************
其中 Last modified 后面的时间是根据当前时间 自动 插入的,Filename 后的文档名也是当前编辑的文档名。
我们的目的是在 VIM 的命令模式下面,按下fuck 4个字符, 自动 在文档的开头插入上面的信息,这就需要在 VIM 的配置文档中定义关于 fuck 的map指令
为了方便,先定义一个函数
function AddTitle()
call setline(1,"#****************************************************")
call append(1,"#         Author: Muddyboot - toobyddum@gmail.com")
call append(2,"#  " . "Last modified: " . strftime("%Y-%m-%d %H:%M"))
call append(3,"#       Filename: " . expand("%"))
call append(4,"#    Description: ")
call append(5,"#****************************************************")
endf
函数用 function 关键字开头,函数名的第一个字母需要大写
setline 表示在第一行插入 #******** 
append 表示追加行,expand表示展开变量的值,%代表文档名,strftime 表示当前时间
然后定义 map 规则:
map fuck :call AddTitle():$o
表示按键,表示回车,上面的指令的意思是在文档开头加入 注释 ,然后跳到文档末尾,进入输入模式。
OK,很简单吧~~~~~~ 
好,当您对一个脚本修改后,需要更新 Last modified 时间怎么办,手动吗?当然不用这么麻烦~~~~ 
同样能够指定一个 map 规则,比如 shit
map shit :/# *Last modified: /s@:.*$@/=strftime(": %Y-%m-%d %H:%M")@
让我们一步一步分析上面规则的意思:
/# *Last modified: / 表示查找以 # 开头,后面跟上一些空格,然后是 Last modified: 的行,也就是上面插入 注释 的第2行
s@....@@ 表示替换
第一个 @....@ 中间的内容,表示原来的时间,
第二个 @....@ 是新的当前时间,由于这个时间是动态的,需要调用函数,故在@后需要用 /= 来告诉 s 命令
/= 后面的代码是个表达式,其值就是当前时间
最后一个  代表回车,也就是执行这个替换操作

好了,现在,您只要按下fuck,VIM自动行首插入注释,假如下次您修改了文档,按下shit,注释中的最后更改时间则会自动同步到当前时间,再一次感受到了VIM的强大功能了吧 !

本文转自博客园知识天地的博客,原文链接:自动添加注释,如需转载请自行联系原博主。


相关文章
|
8月前
DTL注释
DTL注释。
48 1
|
3月前
|
Java 编译器 C语言
2.2 注释
在编程中,/*与*/间的部分为注释,帮助他人理解程序。C语言支持多行及同行为代码添加注释,如/*这是C注释*/。C99引入了类似C++和Java的//注释方式,仅限单行://这是单行注释。甚至 int range;//此处也可注释。但需注意避免注释缺失结束标记导致的错误。
34 3
|
8月前
|
算法 编译器 C++
C++注释
C++注释
76 2
|
7月前
|
编译器 C++
C++中的注释作用
C++ 中的注释用于提高代码可读性,有单行和多行两种形式。单行注释以 `//` 开始,多行注释用 `/* ... */` 包裹。`#if 0 ... #endif` 用于条件编译,可实现代码的临时屏蔽,适用于调试和测试。
|
8月前
|
存储 弹性计算 运维
使用注释
【4月更文挑战第29天】
45 2
|
8月前
QtCreater增加自动添加注释的快捷代码
QtCreater增加自动添加注释的快捷代码
348 0
|
8月前
|
编译器 C++
C++ 注释
C++ 注释
49 0
|
8月前
|
XML 程序员 编译器
C#注释
C#注释
86 0
|
程序员
笑出腹肌的注释,就怕你不敢用!
笑出腹肌的注释,就怕你不敢用!
113 0
笑出腹肌的注释,就怕你不敢用!
|
程序员
10 个雷人的注释,就怕你不敢用!
本文来源网络: 1、码农何苦为难穷逼 2、删了就无法运行,我也不知道为什么
10 个雷人的注释,就怕你不敢用!