我想在vim缓冲区中使用以下内容,最好独立于操作系统。
today
将被=20130716
取代。 需要等号! tomorrow
将被=20130717
nextweek
将被=20130723
作为上述行的信息:今天是2013年7月16日
For 1.我可以使用(在Windows上不起作用):
iab <expr> tod strftime("=%Y%m%d")
对于2.和3.我可以使用(没有Windows并添加额外的不需要的回车):
iab tom <C-o>:r !date -v+1d "+\%Y\%m\%d"<CR>
对于2.和3.我可以使用(OS独立但也有额外的不需要的回车):
iab too <ESC>:r !ruby -e "puts (Time.now + 24*60*60).strftime('\%Y\%m\%d')"<CR>
我如何实现自己的需求。最佳操作系统独立和红宝石方式:)对于第一种方法2.和3.避免不需要的回车是很好的。
我的vim内置了ruby,所以也许有更智能的方法可以调用我显示的ruby命令。目前我不知道更好的方法。
答案 0 :(得分:3)
在插入模式下尝试使用以下映射:
:inoremap <expr> today strftime( "=%Y%m%d", localtime() )
:inoremap <expr> tomorrow strftime( "=%Y%m%d", localtime() + (24 * 3600) )
:inoremap <expr> nextweek strftime( "=%Y%m%d", localtime() + (7 * 24 * 3600) )