Установка фонового режима энергии depeding на времени суток

Несколько систем цветов в энергии имеют два режима, которые изменяют цвета, когда Вы делаете set bg=light/dark. Я задаюсь вопросом, возможно ли установить мой .vimrc файл, таким образом, что это устанавливает соответствующий режим в зависимости от системного времени, например, устанавливая темный режим между 20:00 и 7:00 и легкий режим иначе. Если так, как это было бы достигнуто?

1
задан 8 March 2016 в 23:15

1 ответ

Это прекрасное решение из 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
0
ответ дан 15 January 2021 в 21:49

Другие вопросы по тегам:

Похожие вопросы: