我有一台那种超级光滑的显示器,在白天,我能够看到自己的倒影比暗黑色主题上的代码更清晰。所以我想如果我可以有一个简单的if
开关在我的vimrc中,根据时间设置暗黑或明亮的主题,那就太好了。
可惜的是,我不太了解vimrc语法,并且搜索结果也不理想。
有人愿意尝试一下吗?
我有一台那种超级光滑的显示器,在白天,我能够看到自己的倒影比暗黑色主题上的代码更清晰。所以我想如果我可以有一个简单的if
开关在我的vimrc中,根据时间设置暗黑或明亮的主题,那就太好了。
可惜的是,我不太了解vimrc语法,并且搜索结果也不理想。
有人愿意尝试一下吗?
以下类似的代码应该能解决问题:
if strftime("%H") < 12
set background=light
else
set background=dark
endif
显然,您应该根据自己的需求选择小时
:let &background = strftime("%H") < 17 ? "light" : "dark"
- SergioAraujo如果您经常使用不同的配色方案,可以设置多个浅色/暗色配色方案对,并且它将自动切换到匹配的方案。Werewolf根据时间自动更改vim配色方案,让您在白天使用浅色主题,但一旦太阳落山,它会“转换”为暗色主题。
我知道这是一个老问题,并且已经有了一个被接受的答案,但如果你想使用lua
而不是vimscript
来实现相同的功能,以下是我的解决方法。
local hr = tonumber(os.date('%H', os.time()))
if hr > 6 and hr < 21 then -- day between 6am and 9pm
vim.opt.background = 'light'
else -- night
vim.opt.background = 'dark'
end
浅色
和深色
背景。我的night-and-day插件是一个“vim主题调度器”。您可以将一天分成任意数量的时间段,并为每个时间段分配一个主题。如果在新的时间段开始时打开了vim,则主题将自动更改。
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 ))"
}