我越来越多地使用emacs shell-mode,并且我希望可以改进一些东西:更改目录时的完成.我很乐意使用ido
或projectile-find-dir
为此.
我的工作流程
截至今天,我尽力在 emacs的shell之外,尽可能地使用emacs的强大功能(使用ido访问文件,在项目中查找文件projectile
,探索dired中的树,......).
我不经常这样做.当我在一个不同的项目中工作时,我打开另一个shell缓冲区.但是当我不得不这样做的时候,我真的很想念ido或fasd shell实用程序(它的工作原理,但没有它的完成界面,这对zsh来说很棒,而且没有像使用ido那样强大,可能是https:// github. com/clvv/fasd).
如何在elisp中连接?
我知道我们可以列出一份清单ido-completing-read
;
在shell中,键入会cd ../
打开一个新的*Completions*缓冲区.它使用comint-dynamic-completion
,但是如何在elisp列表中获取该列表,而不是在缓冲区中?
是否可以将完成列表连接到ido?(或抛射物或舵或其他)
如果你把我链接到准确的文档(我有很多,很难知道什么对我有用),我也很感激.
还是存在解决方案?
谢谢 !
编辑:这是另一种很好的方式来cd到最近访问过的目录,使用fasd实用程序和ido完成:https://gitlab.com/emacs-stuff/fasd-shell/blob/master/README.org
看另一个SO问题.
ps:eshell与某些shell脚本不兼容,我想保持shell模式.