Vim 中的几种配色方案有两种模式,当您这样做时会改变颜色:
set bg=light/dark
我想知道是否可以设置我的.vimrc
文件,以便它根据系统时间设置适当的模式,例如在 20:00 到 07:00 之间设置暗模式,否则设置亮模式。
如何才能实现这一点呢?
答案1
这是一个漂亮的解决方案Vi 和 Vim Beta,其中的一部分我在下面引用,它会自动更改背景全部运行且全新根据时间的 Vim 实例:
您可以使用
timer_start()
设置“定时器”每隔n毫秒。例如:fun! s:set_bg(timer_id) let &background = (strftime('%H') < 12 ? 'light' : 'dark') endfun call timer_start(1000 * 60, function('s:set_bg'), {'repeat': -1}) call s:set_bg(0) " Run on startup
这将
s:set_bg()
每 1 分钟(60,000 毫秒)运行一次,并且通过设置repeat
它将-1
无限期运行(而不是仅运行一次)。据我(短暂)测试所见,这不会引起任何副作用,例如速度变慢或闪烁。如果确实如此,您可以考虑将逻辑更改为
background
仅当它与当前值不同时才设置(但看起来 Vim 本身就足够智能了)。
对于您的具体情况,您可以添加以下内容,.vimrc
在 07:00 至 20:00 之间使用浅色背景,否则使用深色背景:
fun! s:set_bg(timer_id)
let &background = (strftime('%H') >= 07 && strftime('%H') < 20 ? 'light' : 'dark')
endfun
call timer_start(1000 * 60, function('s:set_bg'), {'repeat': -1})
call s:set_bg(0) " Run on startup