para citar link :
O autocommand a seguir seria a opção "óbvia".
au FocusLost,TabLeave * stopinsert
Infelizmente, parece estar funcionando corretamente apenas para o TabLeave. O evento FocusLost está sendo acionado, mas por algum motivo o comando stopinsert não está realmente entrando em vigor até que um evento chave seja recebido assim que o Vim recuperar o foco.
Em vez disso, você pode aproveitar as teclas de feed e o modo "Leve-me para o modo normal, não importa o quê!" combinação de teclas:
au FocusLost,TabLeave * call feedkeys("\<C-\>\<C-n>")
A única desvantagem é que feedkeys () requer pelo menos o Vim 7. Isso não deve ser um grande problema, já que o Vim7 foi lançado em 2006.