バッファ/ウィンドウフォーカスでVimを自動的に更新する方法は?


11

Vimで画面を再描画するには、Control + Lをよく使用します

特に、スリープ状態から抜けたり、モニター構成を変更したりすると、Vimを再描画する必要があることがよくあります。フォーカスを再描画するvimrcに何かを追加する方が簡単かもしれないと思いました。

  • .vimrcウィンドウ/バッファーがフォーカスを取得したときにバッファーを再描画するコマンドをファイルに追加できますか?

特に、優れたコマンドは、顕著な悪影響やその他の関連する副作用があってはなりません。

回答:


12

vimには、このためにバインドできるイベントがあります。FocusGainedこれをredraw!コマンドと組み合わせ!ます(これにより、ウィンドウが最初にクリアされます)。

:au FocusGained * :redraw!

ここの構文は、「パターンに一致するファイル:redraw!のイベントを取得したときに、コマンドを自動的に実行する(auはautocmdの略です)」と読むことができます。FocusGained*

これを永続的にするには、それをあなたに追加します~/.vimrc:vimrcでは先頭は必要ありません)。

イベントをテストするには、次のようなより明白なコマンドを使用できます

:au FocusGained * :q!

1
ありがとう。基本的なテストを行いましたが、パフォーマンスの問題は発生せずに動作するようでした。
Jeromy Anglim
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.