基于
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Last change用到的函数,返回时间,能够自动调整位置
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
function! TimeStamp(...)
let sbegin = ''
let send = ''
let pend = ''
if a:0 >= 1
let sbegin = '' . a:1
let sbegin = substitute(sbegin, '*', '\\*', "g")
let sbegin = sbegin . '\s*'
endif
if a:0 >= 2
let send = '' . a:2
let pend = substitute(send, '*', '\\*', "g")
endif
let pattern = 'Last Change: .\+' . pend
let pattern = '^\s*' . sbegin . pattern . '\s*$'
let now = strftime('%Y-%m-%d %H:%M:%S',localtime())
let row = search(pattern, 'n')
if row == 0
let now = a:1 . 'Last Change: ' . now . send
call append(2, now)
else
let curstr = getline(row)
let col = match( curstr , 'Last')
let now = a:1 . 'Last Change: ' . now . send
call setline(row, now)
endif
endfunction
"" Last Change: 2010-07-29 18:50:39
au BufWritePre _vimrc call TimeStamp('" ')
" * Last Change: 2010-07-29 18:50:39
au BufWritePre *.js,*.css call TimeStamp(' * ')
"# Last Change: 2010-07-29 18:50:39
au BufWritePre *.rb,*.py,*.sh call TimeStamp('# ')