Como atualizar automaticamente o Vim no buffer / foco da janela?

11

Costumo usar Control + L para redesenhar a tela no Vim .

Em particular, quando saio do sono ou mudo as configurações do monitor, muitas vezes acho que o Vim precisa ser redesenhado. Eu pensei que poderia ser mais simples apenas adicionar algo ao meu vimrc que redesenhe o foco.

  • Existe um comando que eu possa adicionar ao meu .vimrcarquivo que redesenha o buffer quando a janela / buffer obtiver o foco?

Em particular, um bom comando não deve ter desempenho negativo perceptível ou outros efeitos colaterais relacionados.

Jeromy Anglim
fonte

Respostas:

12

O vim tem um evento ao qual você pode se vincular FocusGained, combine isso com o redraw!comando (o que !faz com que a janela seja limpa primeiro)

:au FocusGained * :redraw!

A sintaxe aqui pode ser lida como 'execute automaticamente o comando (au é a abreviação de autocmd) :redraw!quando recebo o evento FocusGainedpara qualquer arquivo que corresponda ao padrão *'.

para torná-lo permanente, adicione-o ao seu ~/.vimrc(a liderança :não é necessária no vimrc).

Para testar eventos, você pode usar um comando mais "óbvio", como

:au FocusGained * :q!
cjh
fonte
1
Obrigado. Fiz um teste básico e parecia funcionar sem problemas de desempenho.
Jeromy Anglim