vim 自动添加头注释

来源:互联网 发布:ai for mac中文版 编辑:程序博客网 时间:2024/04/29 11:18

Vim的强大就不用我多说了,很多的自定义功能可以由自己更改Vim的配置文件以实现,本文将介绍的是:

  1. 创建新文件时,自动添加头部注释信息
  2. 保存文件时,自动重写“修改时间”

先来看看效果,当直接创建一个新文件的时候(vim filename.php),就会出现以下注释文字

01<?php
02#***********************************************
03#
04#      Filename: Mysql.class.php
05#
06#        Author: Mp - mingpeng16@gmail.com
07#   Description: Abstract CLASS
08#        Create: 2013-12-17 15:19:20
09# Last Modified: 2013-12-18 10:41:31
10#***********************************************

当保存文件的时候(:w ),会自动修改相应的“修改时间”

我们需要做的就是打开vimrc配置文件,一般来说,vim的位置在 etc/vim 目录下,然后在文件的末尾添加相应的代码即可。

01"SET Comment START
02autocmd BufNewFile *.php,*.js,*.cpp exec ":call SetComment()" |normal 10Go
03 
04func SetComment()
05    if expand("%:e") == 'php'
06        call setline(1, "<?php")
07    elseif expand("%:e") == 'js'
08        call setline(1, '//JavaScript file')
09    elseif expand("%:e") == 'cpp'
10        call setline(1, '//C++ file')
11    endif
12    call append(1, '#***********************************************')
13    call append(2, '#')
14    call append(3, '#      Filename: '.expand("%"))
15    call append(4, '#')
16    call append(5, '#        Author: Mp - mingpeng16@gmail.com')
17    call append(6, '#   Description: ---')
18    call append(7, '#        Create: '.strftime("%Y-%m-%d %H:%M:%S"))
19    call append(8, '# Last Modified: '.strftime("%Y-%m-%d %H:%M:%S"))
20    call append(9, '#***********************************************')
21"    call append(10, '')
22endfunc
23 
24map <F2> :call SetComment()<CR>:10<CR>o
25"SET Comment END

上面的这段代码,简要说明一下,用的是vim language,SetComment就是主要功能实现函数,autocmd该行是在创建新文件的时候自动执行SetComment函数,最后还有个map映射,这里绑定了F2安键,每次按下也会插入头部信息。

01"SET Last Modified Time START
02 
03func DataInsert()
04    call cursor(9,1)
05    if search ('Last Modified') != 0
06        let line = line('.')
07        call setline(line, '# Last Modified: '.strftime("%Y-%m-%d %H:%M:%S"))
08    endif
09endfunc
10 
11autocmd FileWritePre,BufWritePre *.php,*.js,*.cpp ks|call DataInsert() |'s
12"SET Last Modified Time END

 

上面这段代码,本质就是查找信息进行修改,最后的autocmd也是同上道理。

0 0