No Vim, o mais próximo que você pode chegar é (como a resposta de Ingo e o comentário de Christian mencionados) é:
augroup viminfo
autocmd!
autocmd FocusLost * wviminfo
autocmd FocusGained * rviminfo
augroup end
É importante perceber que os Focus*
comandos automáticos nem sempre são executados quando você usa o Vim em um terminal, principalmente se você estiver usando tmux ou screen. Você deve testar isso primeiro usando :au FocusLost :echoerr "Focus lost!"
.
Até onde eu sei, não há uma boa solução alternativa, se esses comandos automáticos não funcionarem para você. Usar outros eventos (como CursorHold
) parece problemático para mim devido a problemas de tempo que quase certamente surgirão.
O Neovim vem com o "ShaDa", que substitui o sistema viminfo do Vim. Um aspecto em que é melhor é mesclar arquivos de diferentes instâncias, e enquanto ele não suporta diretamente a sincronização entre várias instâncias ( ainda ), este parece funcionar bem para pelo menos um desenvolvedor Neovim :
augroup shada
autocmd!
autocmd CursorHold * rshada | wshada
augroup end
Veja :help shada-merging
para detalhes sobre o processo de mesclagem.