如何在Emacs Prelude中创建与现有文件匹配的新文件?

5
在Emacs Prelude中,我无法弄清如何在存在“匹配”文件名的文件时创建新文件。
在示例截图中,我正在尝试在已经包含一个名为spawn_basic.exs的文件的目录中创建一个名为spawn.exs的文件。当我使用C-x C-f创建一个新文件时,emacs将spawn.exs与spawn_basic.exs进行匹配,按Enter键会打开spawn_basic.exs而不是创建spawn.exs。

enter image description here

我尝试了一些解决方法(例如使用touch创建文件),但我正在寻找一个更简单的解决方案,只需要一个命令即可。如果没有这样的命令,是否有一种方法可以禁用Prelude中的文件名匹配功能?与原始的Emacs相比,我喜欢Prelude的大多数其他功能,所以我宁愿不切换回去。
1个回答

3
在Prelude中,C-x C-f绑定到helm-find-files。通常情况下这很好用,但是对于这种情况,我没有看到一个好的解决方法来绕过它的匹配(正如你所描述的)。
不过,ido-find-file也有一个类似友好的完成系统,并且提供了一个很好的绕过完成的解决方案。当你输入spawn.exs时,按C-j而不是RET打开文件。我认为Helm也应该这样做(而不是将它们视为相同的),所以你可能想要提交一个功能请求(以匹配Ido的“verbatim entry”)。
Ido作为find-file的替代品工作得很好,对于像这样简单的情况,Mastering Emacs建议使用它。所以你可以重新映射它:
(global-set-key (kbd "C-x C-f") 'ido-find-file)

我尝试了你在第二段提到的建议,使用C-j代替RET起作用了!因此,helm-find-files似乎确实尊重C-j作为“逐字输入”的快捷键。感谢你的回答! - kcdragon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接