我一直用我自己的 MultiTerm在Emacs中执行终端命令, 最近看见大家都在折腾 EShell, 晚上花了一个小时写了一个 Aweshell
Aweshell 基于 eshell, 希望提供一个开箱即用的 eshell 使用环境, 下载下来就可以使用, 不用浪费时间折腾.
主要的增强功能有:
- 像 MultiTerm 一样对 eshell 进行多bufffer创建和切换功能
- 添加了一些方便的函数, 比如 clear buffer, toggle sudo , 感谢 @Samray
- 默认集成 eshell-prompt-extras.el , 提供长路径缩写, git分支, 远程shell等状态增强, 类似oh-my-zsh的效果
- 默认集成 esh-autosuggest.el , 提供类似 Fish 的历史命令补全功能, 包括对 bash/zsh 历史的补全
- 实时检查命令是否有效, 并对无效命令/别名提前进行高亮显示, 避免执行后发现敲错字符, 感谢 @casouri
- eshell更改目录的时候, 同步更新 buffer name, 感谢 @casouri
- 通过集成 exec-path-from-shell.el 来修复Mac下 eshell 报 “Command not found” 的错误, 主要是 /usr/local/bin/ 等路径没有导入 eshell path
- 内置一些方便的别名: f (find-file), fo (find-file-other-window), d (dired), ll (list files)
- 添加 git 命令的补全支持
- 集成 eshell-up
- unpack 命令可以直接解压压缩文件, 不用记住那么多解压命令
- 命令敲错的时候, 显示 didi you mean 的帮助
- cat 命令的输出有语法高亮
- 后台命令完成或终止时提醒用户
默认按键:
- Ctrl + L : aweshell-clear-buffer
- Ctrl + Shift + L: aweshell-sudo-toggle
- Ctrl + H: company-complete-selection
以上按键均可通过以下选项进行自定义:
aweshell-complete-selection-key
aweshell-clear-buffer-key
aweshell-sudo-toggle-key
Aweshell 的多buffer管理的代码移植至我的 MultiTerm, 其他的大部分功能都是从 折腾eshell - #17,来自 casouri 这个帖子中集成的.
感谢 @Samray @casouri , 抄了你们的一部分代码, 很好用.
如果大家有兴趣, 可以一起向 aweshell.el 贡献代码, 我们折腾好了, 后人直接用就可以了.
安装方法见: GitHub - manateelazycat/aweshell: Awesome shell extension base on eshell with wonderful features!
安装完毕后, 直接绑定按键到下面三个命令就可以使用了:
aweshell-new
aweshell-next
aweshell-prev