Emacs: Terminal vs shell?
Running a term buffer is much closer to an actual terminal. Here are a few differences:
- Shell mode provides very limited terminal emulation. Programs that take advantage of the terminal's full-screen capabilities (e.g.
less
,mtr
,mutt
,top
) won't work properly. Terminal mode will generally handle these without any problem. - In shell mode, emacs provides tab completion. In terminal mode, the shell or command-line program provide it themselves.
- Shell mode buffers the input and sends it to the process on newline. Terminal mode sends the characters to the running process immediately.
- Shell mode works like a regular buffer with the usual emacs key bindings. Terminal mode doesn't intercept most control characters unless you explicitly put it into line mode.