Vim:根据时间设置颜色/主题

时间:2011-09-28 19:30:16

标签: vim

我有一个超级光面显示器,所以在白天我可以看到自己的反射比我在黑暗主题上的代码更好。所以我觉得如果我能在我的vimrc中设置一个简单的if开关,根据一天中的时间设置黑暗主题或浅色主题,那就太棒了。

唉,我对vimrc语法知之甚少,谷歌搜索也很简短。

有人想破解这个吗?

6 个答案:

答案 0 :(得分:43)

以下内容应该可以解决问题:

if strftime("%H") < 12
  set background=light
else
  set background=dark
endif

显然你应该根据你的需要选择小时

答案 1 :(得分:5)

这不是严格意义上的Vim答案,但您可以尝试安装f.lux,将您的显示器颜色调整为当天的时间。

这是demo。白天有温暖的黄色光芒,夜间有蓝色的光。

免责声明:我自己没有尝试过(但我受到了诱惑)。

答案 2 :(得分:3)

试试werewolf.vim插件:

  

Werewolf会根据一天中的时间自动更改您的vim colorscheme,让您在白天使用灯光主题,但在太阳落山后“变换”为黑暗主题。

如果您经常使用不同的配色方案,您可以设置几对明/暗配色方案,它会自动切换到匹配方案。

答案 3 :(得分:1)

您可以在vimrc中获取.vimrc.local。然后你可以使用cron根据一天中的时间覆盖该文件。没有脚本: - )

答案 4 :(得分:1)

我的night-and-day插件是&#34; vim主题调度程序&#34;。您可以将日期划分为任意数量的间隔,并为每个间隔指定一个主题。如果在新的间隔开始时vim打开,主题将自动更改。

答案 5 :(得分:0)

我想出了另一种改变颜色和背景的方法

exe 'colo' ((strftime('%H') % 18) >= 6 ? 'gruvbox' : 'kolor')
exe 'set background='. ((strftime('%H') % 18) >= 6 ? 'light' : 'dark')

使用其余的划分可以更好地控制我要更改背景的时间。我们可以使用此shell循环查看原因:

for ((i=1;i<=23;i++)){
 echo "Rest of dividing $ i by 18 equal to:  $(( $i % 18 ))"
}

如果我使用<14,而不是除法其余部分,则发生的情况是午夜之后我的配色方案变为“浅色”。因此,我将小时除以6的其余部分进行比较。