neovim/neovim — pull request #450 by tarruda (2014-04-02 14:32:20+00:00)
Title: [RFC] Remove code supporting interactive programs from vim

I want to remove all code for emulating a terminal inside vim but before some feedback/opinions would be good. Here are my reasons:

- This code in the first commit was only needed for the old GUI. Right now the interactive program will only spawn when the terminal is in cooked mode so everything should just work.
- Even in the old GUI, running interactive shells was clumsly:
- GUI doesnt seem to handle terminal colors
- The documentation (:h gui-shell) says that support is incomplete
- On windows it spawns a separate window(is that different than creating an ex command that does the same?)
- Terminal emulation is something that should be implemented as a plugin. For example, [conque shell](http://www.vim.org/scripts/script.php?script_id=2771) is much better than vim own terminal emulation, and it could be easily ported to run on the new extension architecture(most of it is implemented in python) making it work much better(async updates)
- Most plugins probably dont need it.(not sure about this)
- Even in terminal vim, the idiomatic way to use a shell is ctrl+z

On top of that, vim itself seems to reject the idea(:h develop.txt):

"
- Vim is not a shell or an Operating System. You will not be able to run a
shell inside Vim or use it to control a debugger. This should work the
other way around: Use Vim as a component from a shell or in an IDE.
A satirical way to say this: "Unlike Emacs, Vim does not attempt to include
everything but the kitchen sink, but some people say that you can clean one
with it. ;-)"
"

So I see no reason why this was implemented in the first place.

I thought about doing this while reading(in a lot of pain) mch_call_shell code for #444 but I guess this should be on a separate PR and not before I have some feedback