根据一天中的时间设置 vim 后台模式

根据一天中的时间设置 vim 后台模式

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

相关内容