求救,有人用eshell + ivy么,更新以后出问题了

开启ivy-mode以后,在eshell里面输入一个路径,比如./ , 然后按tab或者执行completion-at-point,下方出现ivy补全得同时,会把我输入得./给删掉。 但是关掉ivy就正常了。 有没有人遇到这个问题呀,这个要怎么查是哪里删掉得呀。
另外,如果输入得是 ls 或者cd加上路径, 比如 ls ./ , 然后再使用completion-at-point则正常补全,不会删掉部分字符. 另外,shell是正常得,只有eshell会这样,我试过用emacs -q启动,然后require ivy,也是一样不对得。

问题解决了,因为我用的archcn上的滚动升级的emacs,最新的eshell的问题。 我找了一个之前的eshell的目录替换过去问题就解决了。 具体一点的话是completions-first-difference这个设置的不对,但是我也不知道是哪里改错了还是怎么回事。折腾了好久,也懒得去diff了。 反正如果你们碰到这个问题就找个旧的eshell换一下就好了。

以前我没有特定shell的偏好。eshell, shell-mode ansi-term都用过。不过 Native shell completion in Emacs • Core Dumped 一文让我选定shell-mode. 该文提供了一个company的backend,加上company自带的company-files backend,用了一年效果还不错。

1 个赞