4 ms·
Don't go the eshell route unless you're prepared to learn Elisp very well and then write a ton of custom Elisp code. Take a look at its documentation: > Eshell
by klibertp 11y ago
Don't go the eshell route unless you're prepared to learn Elisp very well and then write a ton of custom Elisp code. Take a look at its documentation:
> Eshell is _not_ a replacement for system shells such as ‘bash’ or ‘zsh’.
Use Eshell when you want to move text between Emacs and external
processes; if you only want to pipe output from one external process to
another (and then another, and so on), use a system shell, because
Emacs’s IO system is buffer oriented, not stream oriented, and is very
inefficient at such tasks. If you want to write shell scripts in
Eshell, don’t; either write an elisp library or use a system shell.
And yes, I never managed to make auto-completion work really well in M-x shell (or eshell).
One possible shell env you might be interested in is IPython. It's a Python REPL with support for launching external programs, shell-like variable substitution and much more. Coupled with qtconsole it makes for a great shell-like experience. I was using IPython under Windows as my shell for awhile, before switching to PowerShell.