Aweshell 1.0 发布

我一直用我自己的 MultiTerm在Emacs中执行终端命令, 最近看见大家都在折腾 EShell, 晚上花了一个小时写了一个 Aweshell

Aweshell 基于 eshell, 希望提供一个开箱即用的 eshell 使用环境, 下载下来就可以使用, 不用浪费时间折腾.

主要的增强功能有:

  1. 像 MultiTerm 一样对 eshell 进行多bufffer创建和切换功能
  2. 添加了一些方便的函数, 比如 clear buffer, toggle sudo , 感谢 @Samray
  3. 默认集成 eshell-prompt-extras.el , 提供长路径缩写, git分支, 远程shell等状态增强, 类似oh-my-zsh的效果
  4. 默认集成 esh-autosuggest.el , 提供类似 Fish 的历史命令补全功能, 包括对 bash/zsh 历史的补全
  5. 实时检查命令是否有效, 并对无效命令/别名提前进行高亮显示, 避免执行后发现敲错字符, 感谢 @casouri
  6. eshell更改目录的时候, 同步更新 buffer name, 感谢 @casouri
  7. 通过集成 exec-path-from-shell.el 来修复Mac下 eshell 报 “Command not found” 的错误, 主要是 /usr/local/bin/ 等路径没有导入 eshell path
  8. 内置一些方便的别名: f (find-file), fo (find-file-other-window), d (dired), ll (list files)
  9. 添加 git 命令的补全支持
  10. 集成 eshell-up
  11. unpack 命令可以直接解压压缩文件, 不用记住那么多解压命令
  12. 命令敲错的时候, 显示 didi you mean 的帮助
  13. cat 命令的输出有语法高亮
  14. 后台命令完成或终止时提醒用户

默认按键:

  1. Ctrl + L : aweshell-clear-buffer
  2. Ctrl + Shift + L: aweshell-sudo-toggle
  3. 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

19 个赞

Cool!不过能不能分离一个独立的repo?,我这种用包管理器的不好安装啊。麻烦的话我来维护也成。

另外同步eshell buffer名字和pwd的功能你觉得可以加入吗?

弱弱地问一下,multi-term究竟该怎么用啊,为啥帮助里大部分快捷键都不好使?:sweat_smile:

multi-term.el 和你使用终端模拟器一样就可以了, 但是很多按键收到 terminal 影响, terminal 和 shell 不一样.

terminal 能提供图形化绘制功能 shell 才能随心所欲的像emacs进行操作

感觉好像ansi-term里的那些快捷键,在multi-term里都用不了啊,看帮助应该是和ansi-term兼容的呀,无论在spacemacs里还是纯的emacs里用都是这样,是我姿势不对么。。

multi-term.el 改了按键, 你可以在里面找到怎么改按键的方法.

遇到问题先看文档啊, 文档里面都写的非常清楚地.

1 个赞

仓库已经改到 GitHub - manateelazycat/aweshell: Awesome shell extension base on eshell with wonderful features! , 我用 submodule 连接到 lazycat-emacs 里面.

好的,抱歉歪楼了:grinning:

不明觉厉,先顶为敬 :rofl:

同步 shell buffer 的功能已经加入: Change aweshell buffer name by directory change. · manateelazycat/aweshell@91f0dad · GitHub

pwd 的功能是啥? 能否给一个 demo 看一下? 谢谢

我的意思就是“同步buffer名字和pwd”的功能,哈哈

@manateelazycat 老王,我觉得我这个函数也不错 代码分享:在 Eshell 实现 fzf 般查找历史命令

此外,建议改名,改成 oh-my-esh :rofl:

这个名字太山寨了。:joy:

来个pr?一起玩 :smirk:

那应该已经加上了,哈哈哈哈 :smiley:

建议做个类似pop-shell的功能:sweat_smile:

不如就叫ashell简单粗暴.

aweshell都不知道怎么念...

跟我一起念:awesome shell 哈哈哈哈

1 个赞

对的,建议加上pop-shell 的功能,或者晚上我回去PR一个

1 个赞