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


11

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

特别是,当我睡着了或更改监视器配置时,我经常发现需要重绘Vim。我认为向我的vimrc添加一些重新绘制焦点可能会更简单。

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

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

Answers:


12

vim有一个您可以为此绑定的事件,将该事件FocusGainedredraw!命令结合在一起(!导致首先清除窗口)

:au FocusGained * :redraw!

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

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

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

:au FocusGained * :q!

1
谢谢。我给它做了一个基本测试,它似乎没有任何性能问题。
Jeromy Anglim
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.