manateelazycat/aweshell
{ "createdAt": "2018-08-14T01:44:38Z", "defaultBranch": "master", "description": "Awesome shell extension base on eshell with wonderful features!", "fullName": "manateelazycat/aweshell", "homepage": "", "language": "Emacs Lisp", "name": "aweshell", "pushedAt": "2024-08-26T00:11:49Z", "stargazersCount": 437, "topics": [], "updatedAt": "2025-11-24T10:45:05Z", "url": "https://github.com/manateelazycat/aweshell"}What is aweshell?
Section titled “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.
- 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.
- Complete shell command arguments like IDE feeling.
- Dedicated shell window like IDE bottom terminal window.
Installation
Section titled “Installation”Put aweshell.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-newaweshell-nextaweshell-prevaweshell-clear-bufferaweshell-sudo-toggleaweshell-switch-bufferaweshell-dedicated-toggleaweshell-dedicated-openaweshell-dedicated-closeInstalling with Quelpa
Section titled “Installing with Quelpa”If you prefer to use a package manager, you can use quelpa-use-package.
(use-package aweshell :quelpa (abc-mode :fetcher github :repo "manateelazycat/aweshell"))Customize
Section titled “Customize”Customize variables below by:
M-x customize-group RET aweshell RETaweshell-complete-selection-keyaweshell-clear-buffer-keyaweshell-sudo-toggle-keyaweshell-use-exec-path-from-shellaweshell-dedicated-window-heightCustomize prompt as directed in eshell-prompt-extras’ README.
Dedicated window
Section titled “Dedicated window”You can use command aweshell-dedicated-toggle to pop dedicated window at bottom of frame.
Aliases
Section titled “Aliases”In alias file:
alias up eshell-up $1alias pk eshell-up-peek $1Other customization of eshell-up:
(setq eshell-up-ignore-case nil)(setq eshell-up-print-parent-dir t)If you got error that random space insert, you perhaps need turn off aweshell-auto-suggestion-p with (setq aweshell-auto-suggestion-p nil), meantime auto suggestion feature will turn off.