:term eshell
The elisp shell that works everywhere
1. Description
This module extends the built-in Emacs Shell (eshell).
The Emacs Shell or eshell is a shell-like command interpreter implemented in Emacs Lisp. It is an alternative to traditional shells such as bash, zsh, fish, etc. that is built into Emacs and entirely cross-platform.
It’s stable, works anywhere Emacs runs (on any OS), and has no external dependencies. The downside is it lacks features some features you’d expect from mature shells (and a tiny community around it), tends to be slower in some cases, and does not support command line tools with TUIs (e.g. curses, ncdu, nmtui, top, etc).
Eshell would be perfect if you didn’t have to reinvent all the wheels in the dealership.
1.1. Maintainers
This module has no dedicated maintainers. Become a maintainer?
1.2. Module flags
This module has no flags.
1.3. Packages
1.4. Hacks
- Even with
fish-completion-fallback-on-bash-p
non-nil, fish must be installed for bash completion to work. Workaround in config.el. M-x eshell-did-you-mean
does not work on first invocation, so we manually invoke it once.
2. Prerequisites
3. TODO Usage
This module’s usage documentation is incomplete. Complete it?
- Command completion with Company
- fish-style prompt with Git integration
- z-like directory jumping
- Command-not-found recommendations
4. TODO Configuration
This module’s configuration documentation is incomplete. Complete it?
4.1. TERM name
By default, eshell sets the $TERM variable to "xterm-256color", which helps with rendering various colours. As eshell is not a terminal emulator, these will not always work 100%. Modifying eshell-term-name to your liking may help.
5. Troubleshooting
There are no known problems with this module. Report one?
6. TODO Appendix
This module has no appendix yet. Write one?