Як автоматично оновити Vim на фокусі буфера / вікна?


11

Я часто використовую Control + L, щоб перемалювати екран у Vim .

Зокрема, коли я виходжу зі сну або змінюю конфігурації монітора, я часто виявляю, що Vim потрібно переробляти. Я думав, що може бути простіше просто додати щось у мій vimrc, який перемальовується у фокусі.

  • Чи є команда, яку я можу додати до свого .vimrcфайлу, який перемальовує буфер, коли вікно / буфер отримує фокус?

Зокрема, хороша команда не повинна мати помітних негативних результатів чи інших пов'язаних з цим побічних ефектів.

Відповіді:


12

vim має подію, з якою ви можете зв’язати це, FocusGainedкомбінуйте це з redraw!командою ( !причини спочатку очищають вікно)

:au FocusGained * :redraw!

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

щоб зробити це постійним, додайте його до свого ~/.vimrc(провідний :не потрібен у vimrc).

для тестування подій ви можете використовувати більш "очевидну" команду, як

:au FocusGained * :q!

1
Спасибі. Я склав базовий тест, і, здавалося, це спрацювало без проблем з продуктивністю.
Джеромі Англім
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.