index edit log

Vim as bad at async communication. Still some workarounds exist. You may want to look at which is using which is running a background shell which calls back into Vim to tell it "job is ready" by using client-server feature which in turn requires X (or use vim nox patch)

Alternative solutions exist which use Vim's idle event to poll for updates. See list of related projects in which also lists yet another Vim patch (terminal version only). The async implementation provides a similar API for VimL plugins, but is also using the vim-addon-background-cmd way calling back into Vim using client-server. For quickfix I don't use -async because its causing a noticable delay IMHO.

There is still one difference: Emacs updates a grep /compile list while you can continue editing. vim-addon-async, vimproc, .. are vim like solutions.

For an older version of Vim there is als a thread patch which allows to run a terminal in vim, or see ConqueTerm.

While the order of projects listed here might be biased (cause I'm the author), I still hope that the overall overview is kind of complete.

TODO: tidy this up