Как автоматически обновлять Vim на фокусе буфера / окна?

Я часто использую Control + L для перерисовки экрана в Vim .

В частности, когда я выхожу из сна или меняю настройки монитора, я часто обнаруживаю, что Vim нужно перерисовать. Я думал, что было бы проще просто добавить что-то в мой vimrc, который перерисовывается в фокусе.

  • Есть ли команда, которую я могу добавить в мой .vimrc файл, который перерисовывает буфер, когда окно / буфер получает фокус?

В частности, хорошая команда не должна иметь заметных отрицательных результатов или других связанных побочных эффектов.

vim имеет событие, к FocusGained вы можете привязываться для этого, FocusGained , объединить это с redraw! command (the ! заставляет окно сначала очищаться)

 :au FocusGained * :redraw! 

Синтаксис здесь можно прочитать как «автоматически запускать команду (au short для autocmd) :redraw! когда я получаю событие FocusGained для любого файла, соответствующего шаблону * '.

чтобы этот постоянный добавить его в ваш ~/.vimrc (ведущий : в vimrc не нужен).

для тестирования событий вы можете использовать более «очевидную» команду, например

 :au FocusGained * :q!