如何在缓冲区/窗口焦点上自动刷新 Vim?

如何在缓冲区/窗口焦点上自动刷新 Vim?

我经常使用Control+L 在 Vim 中重绘屏幕

特别是,当我从睡眠中醒来或更改显示器配置时,我经常发现 Vim 需要重新绘制。我认为在我的 vimrc 中添加一些可以重绘焦点的东西可能会更简单。

  • 是否有一个命令可以添加到我的.vimrc文件中,当窗口/缓冲区获得焦点时重绘缓冲区?

特别是,一个好的命令应该没有明显的负面性能或其他相关的副作用。

答案1

vim 有一个你可以绑定的事件,FocusGained将其与redraw!命令结合起来(这!会导致窗口首先被清除)

:au FocusGained * :redraw!

这里的语法可以理解为“当我收到与模式匹配的任何文件的:redraw!事件时自动运行命令(au 是 autocmd 的缩写) ”。FocusGained*

要使其永久,请将其添加到您的( vimrc 中不需要~/.vimrc前导)。:

要测试事件,您可以使用更“明显”的命令,例如

:au FocusGained * :q!

相关内容