Neovim now has builtin terminal emulation via libvterm
This will be used for :! and :shell commands.* :term [prog/args] will open a new special buffer "connected" to a pseudo terminal running prog/args* any command that would enter insert mode will focus the terminal buffer instead.* when focused a new mode is entered where all keys are passed directly to the program. The  combination will return to normal mode.* new terminal-only mappings can be added with the "t" prefix(eg: tnoremap   exit terminal focus using ctrl+a)Someone asked: "I really don't know how I would use this feature but it's impressive how well it works."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)"If you want to try this out yourself and have installed neovim with brew, do this:  brew tap neovim/homebrew-neovim
  brew edit neovim

At the top of the recipe, change the head:  #head "https://github.com/neovim/neovim.git"
  head "https://github.com/tarruda/neovim.git", :branch => "builtin-terminal-emulation"

And then:  brew install --HEAD neovim
  -or-
  brew reinstall neovim