Executar o Vimscript de forma assíncrona na mesma instância do Vim é realmente impossível, e há uma probabilidade muito maior de você ver esse recurso no Neovim primeiro.
Dito isso, você pode executar comandos externos de forma assíncrona, e retornar informações para a instância atual do Vim.
- Uma abordagem simples seria pesquisar por um arquivo externo (que é preenchido pelo comando externo com seus resultados). Isso pode ser feito por meio de
autocmd CursorHoldou da avaliação de'statusline'(mas não com frequência, para evitar a redução da edição). - O script externo também pode "chamar de volta" para a instância original do Vim por meio do recurso cliente-servidor (cp.
:help new-vim-server). Você teria que passarv:servernamepara o script e, em seguida, retornar viavim --servername {name} --remove-expr. Nota: No Unix, esse recurso requer um servidor X, portanto, você limitaria a aplicabilidade com essa abordagem. - O plug-in vim-misc implementa o último como avaliação do Vimscript em uma segunda instância do Vim; isso fica o mais próximo possível da avaliação assíncrona do Vimscript.