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

Jer*_*lim 12 vim gvim

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

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

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

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

cjh*_*cjh 15

vim 有一个您可以为此绑定的事件FocusGained,将其与redraw!命令结合使用(!导致首先清除窗口)

:au FocusGained * :redraw!
Run Code Online (Sandbox Code Playgroud)

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

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

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

:au FocusGained * :q!
Run Code Online (Sandbox Code Playgroud)