我越来越多地使用emacs shell-mode,但有一些我希望能够改进的地方:在更改目录时完成自动补全。我想使用ido或projectile-find-dir实现这一点。
我的工作流程如下:尽可能在emacs shell之外执行所有操作(使用ido访问文件,在项目中查找文件使用projectile,浏览dired内部的树等)。
我不经常使用cd命令。当我在不同的项目中工作时,我会打开另一个shell buffer。但是,当我必须要使用cd时,我真的很想念ido或fasd shell实用程序(它可以正常工作,但没有zsh的完成接口似乎不那么强大),它不像ido的使用方式可以参考https://github.com/clvv/fasd。
如何在elisp中实现这一点?我知道我们可以给ido-completing-read函数传递一个列表;
在shell中,输入“cd ../<TAB>”将打开一个新的Completions buffer。它使用comint-dynamic-completion,但如何将该列表获取到elisp列表中,而不是获取到buffer中?
以下是我的问题:
- 是否可以将该完成列表与ido、projectile、helm或其他内容连接起来? - 如果您能够链接到精确的文档,我会很感激(有很多,很难知道什么对我有用) - 是否已经存在解决方案?
谢谢!
编辑:这是另一种使用fasd实用程序和ido自动补全快速进入最近访问的目录的好方法:https://gitlab.com/emacs-stuff/fasd-shell/blob/master/README.org 请参见另一个SO问题。
附注:eshell与某些shell脚本不兼容,因此我希望保留在shell-mode中。
我的工作流程如下:尽可能在emacs shell之外执行所有操作(使用ido访问文件,在项目中查找文件使用projectile,浏览dired内部的树等)。
我不经常使用cd命令。当我在不同的项目中工作时,我会打开另一个shell buffer。但是,当我必须要使用cd时,我真的很想念ido或fasd shell实用程序(它可以正常工作,但没有zsh的完成接口似乎不那么强大),它不像ido的使用方式可以参考https://github.com/clvv/fasd。
如何在elisp中实现这一点?我知道我们可以给ido-completing-read函数传递一个列表;
在shell中,输入“cd ../<TAB>”将打开一个新的Completions buffer。它使用comint-dynamic-completion,但如何将该列表获取到elisp列表中,而不是获取到buffer中?
以下是我的问题:
- 是否可以将该完成列表与ido、projectile、helm或其他内容连接起来? - 如果您能够链接到精确的文档,我会很感激(有很多,很难知道什么对我有用) - 是否已经存在解决方案?
谢谢!
编辑:这是另一种使用fasd实用程序和ido自动补全快速进入最近访问的目录的好方法:https://gitlab.com/emacs-stuff/fasd-shell/blob/master/README.org 请参见另一个SO问题。
附注:eshell与某些shell脚本不兼容,因此我希望保留在shell-mode中。