Несколько систем цветов в энергии имеют два режима, которые изменяют цвета, когда Вы делаете set bg=light/dark
. Я задаюсь вопросом, возможно ли установить мой .vimrc файл, таким образом, что это устанавливает соответствующий режим в зависимости от системного времени, например, устанавливая темный режим между 20:00 и 7:00 и легкий режим иначе. Если так, как это было бы достигнуто?
Это прекрасное решение из Vi и Vim Beta, часть которого я цитирую ниже, которое автоматически меняет фон для всех запущенных и новые экземпляры Vim в зависимости от времени:
Вы можете использовать
timer_start()
для установки «таймеров» для запуска функции каждые n миллисекунд. Например:весело! s: set_bg (timer_id) let &background = (strftime('%H') < 12 ? 'светлый' : 'темный') развлечение вызов timer_start (1000 * 60, функция ('s: set_bg'), {'повторить': -1}) call s:set_bg(0) " Запускать при запуске
Это будет запускать
s:set_bg()
каждую 1 минуту (60 000 миллисекунд) и установивrepeat
на-1
, он будет работать бесконечно (а не просто однажды).Насколько я смог убедиться в своем (кратком) тестировании, это не вызвать какие-либо побочные эффекты, такие как замедление или мерцание. Ты сможешь рассмотрите возможность изменения логики для установки
фона
, только если она отличается от текущего значения, если это так (но похоже, что 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