What is aweshell?
I created multi-term.el and use it many years.
Now I'm a big fans of eshell.
So I wrote aweshell.el to extend eshell with these features:
- Create and manage multiple eshell buffers.
- Add some useful commands, such as: clear buffer, toggle sudo etc.
- Display extra information and color like zsh, powered by `eshell-prompt-extras'
- Add Fish-like history autosuggestions, powered by `esh-autosuggest', support histories from bash/zsh/eshell.
- Validate and highlight command before post to eshell.
- Change buffer name by directory change.
- Add completions for git command.
- Fix error `command not found' in MacOS.
- Integrate `eshell-up'.
- Unpack archive file.
- Open file with alias e.
- Output "did you mean ..." helper when you typo.
- Make cat file with syntax highlight.
- Alert user when background process finished or aborted.
Installation
Put aweshell.el, esh-autosuggest.el, eshell-prompt-extras.el, exec-path-from-shell.el to your load-path.
The load-path is usually ~/elisp/.
It's set in your ~/.emacs like this:
(add-to-list 'load-path (expand-file-name "~/elisp"))
(require 'aweshell)Bind your favorite key to functions:
aweshell-new
aweshell-next
aweshell-prev
aweshell-clear-buffer
aweshell-sudo-toggleCustomize
Customize variables below by:
M-x customize-group RET aweshell RETaweshell-complete-selection-key
aweshell-clear-buffer-key
aweshell-sudo-toggle-key
aweshell-use-exec-path-from-shellCustomize prompt as directed in eshell-prompt-extras' README.
Aliases
In alias file:
alias up eshell-up $1
alias pk eshell-up-peek $1
Other customization of eshell-up:
(setq eshell-up-ignore-case nil)
(setq eshell-up-print-parent-dir t)