zoukankan      html  css  js  c++  java
  • 自动添加注释

     程式的时候给代码注释有时候蛮烦人的,尤其是用英文写注释的时候,但是养成写注释的习惯,对日后代码的维护还是很有帮助的,一般脚本的开头会注明编写时间,版本,用途等说明。
    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的强大功能了吧 !

  • 相关阅读:
    MySQL如何把varchar类型字段转换成int类型进行倒叙排序
    MySQL如何使用WITH ROLLUP函数
    MySQL数据库行转列
    SQLserver数据库如何使用SQL语句查看数据库版本
    MySQL数据库如何使用SQL语句查看数据库版本
    js刷新页面
    asp.net core控制器方法返回输出
    asp.net mvc在页面显示HTML字符串
    Convert.ToString()
    三种通信方式 转载
  • 原文地址:https://www.cnblogs.com/mfryf/p/3623829.html
Copyright © 2011-2022 走看看