让VIM自动更新最后修改时间

本文介绍了一个 Vim 编辑器的实用插件,该插件可以在保存文件时自动更新 LastChange 时间戳,并能根据不同文件类型使用不同的标记符号。通过简单的配置,此插件适用于多种文件格式,如 *.js, *.css, *.rb, *.py 和 *.sh 等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 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('# ')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值