这里有一个相关问题的链接(点击这里)。但是答案是要适应helm中自动完成的新方式。但我无法适应它,原因如下。
假设我想打开一个文件/home/user/work/f.txt
。我按下 C-x C-f,它会带我到当前目录,比如说/current/dir/
。我按下Backspace,发现自动完成不允许我删除/
。好吧,用C-Backspace关闭自动完成。然后我杀掉行 C-a C-k 并开始输入。注意到自动完成不起作用,再次打开它 C-Backspace。通常我会输入我知道的可能是唯一的部分,例如/hom
并按Tab。
但在这里,当我键入/ho
时,自动完成将其解析为/home/
,但由于我打字很快,所以我最终得到了/home/m
,然后继续输入毫无意义的字符,直到我注意到。有可能在那个时候,我已经被自动完成带到了我本不想去的目录。
所以我必须不断地观察自动完成在做什么,而不能依赖于我键入的内容,并只在按下Tab时检查建议的补全。
我也发现自己由于偶尔的打字错误而进入错误的目录,然后很难回到上一级——恶意自动完成不允许你用几个Backspace来解决这个问题。
自动完成行为与Tab功能的移除相互作用,完全打乱了我的工作,以至于我决定提出这个问题。我要么:
- 恢复旧功能
- 学习如何有意义地使用自动完成,或者
- 配置helm的C-x C-f以更像一个Linux命令行
请帮帮我。
C-m
来接受目录,按下C-j
来打开即可。 当然,还有C-SPC
来缩小范围,但这很少需要。 - abo-aboM-x
命令查找非常宝贵。我也非常喜欢anything
。几乎所有关于它的东西都很棒。 - user443854https://github.com/nonsequitur/smex
更好吗? - abo-abo/current/dir/
提示符,您可以直接开始键入/home/user/work/f.txt
而无需删除任何内容 - 即/current/dir//home/user/work/f.txt
或者/current/dir/~/work/f.txt
,Emacs会识别出您已经开始了一个新路径。只要旧路径以/
结尾,您就可以开始输入新的绝对路径。至于其余部分,考虑到Helm被推广为Anything的替代品,如果其行为不至少是可选兼容的,那么它似乎非常奇怪。 - phils