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

How do create a new file that matches an existing file in Emacs Prelude?

在 Emacs Prelude 中,当存在 "matches" 文件名的文件时,我不知道如何创建新文件。

在示例屏幕截图中,我试图在一个目录中创建一个名为 spawn.exs 的文件,该目录已经包含一个名为 spawn_basic.exs 的文件。当我使用 C-xC-f 创建一个新文件时,emacs 将 spawn.exs 匹配到 spawn_basic.exs 并点击 Enter 结果打开 spawn_basic.exs 而不是创建 spawn.exs.

我尝试了一些解决方法(即使用 touch 创建文件),但我正在寻找一种只需要一个命令的更简单的解决方案。如果没有执行此操作的命令,是否有办法禁用 Prelude 中的文件名匹配功能?与香草 Emacs 相比,我最喜欢 Prelude 的其他所有内容,所以我宁愿不切换回去。

在 Prelude 中,C-x C-f 绑定到 helm-find-files。通常是 很好,但是对于这种情况,我没有看到绕过的好的解决方法 它的匹配项(正如您所描述的)。

然而,ido-find-file 有一个类似友好的完成系统, 还提供了一个很好的绕过完成的解决方案。当你打字时 spawn.exs,按 C-j 而不是 RET 打开。我认为头盔 也应该这样做(而不是一视同仁),所以你可能 想要提交功能请求(以匹配 Ido 的 "verbatim entry")。

Ido 作为 find-file 的替代品效果很好,推荐使用 像这样的简单案例的头盔 在 Mastering Emacs。所以你可以 重新映射它:

(global-set-key (kbd "C-x C-f") 'ido-find-file)