Neovim now has builtin terminal emulation via libvterm
This will be used for :! and :shell commands.<p>* :term [prog/args] will open a new special buffer "connected" to a pseudo terminal running prog/args<p>* any command that would enter insert mode will focus the terminal buffer instead.<p>* when focused a new mode is entered where all keys are passed directly to the program. The <c-g><esc> combination will return to normal mode.<p>* new terminal-only mappings can be added with the "t" prefix(eg: tnoremap <c-a> <c-g><esc> exit terminal focus using ctrl+a)<p>Someone asked: "I really don't know how I would use this feature but it's impressive how well it works."<p>tarruda replies: "With time, the numerous use cases for this feature will be clear, but here's one idea: This allows another level of integration between text mode programs and Neovim. For example, we'll be able to make gdb respond to nvim mappings and change file/line numbers when a breakpoint is hit(Technically this might be possible with tmux but not without numerous hacks)"<p>If you want to try this out yourself and have installed neovim with brew, do this:<p><pre><code>  brew tap neovim/homebrew-neovim
  brew edit neovim
</code></pre>
At the top of the recipe, change the head:<p><pre><code>  #head "https://github.com/neovim/neovim.git"
  head "https://github.com/tarruda/neovim.git", :branch => "builtin-terminal-emulation"
</code></pre>
And then:<p><pre><code>  brew install --HEAD neovim
  -or-
  brew reinstall neovim</code></pre>