Emacs:在ido模式下禁用自动文件搜索

41

我使用ido模式。以下是我在.emacs中的设置:

(require 'ido)
(setq ido-enable-flex-matching t)
(setq ido-everywhere t)
(ido-mode t)

当我打开一个文件时,我会使用C-x C-f my_file命令。如果该文件不在当前目录中,Emacs会在大约一秒钟内尝试在其他最近使用的目录中搜索它。然而,大多数时候我只是想创建新文件。我必须快速地输入文件名,然后按下C-j键确认。如何停止ido执行这个操作呢?


将“打开新文件”别名为除C-x C-f之外的某个键(M-x find-file是该操作的正确名称)。 - user2141046
3
ido-find-file中,您只需再次按下 C-x C-f 就可以切换到传统的find-file界面。 - assem
1
@assem 我不想回到普通的“查找文件”。我需要 ido,但不要在其他目录中搜索。 - woodings
1
@assem 只需要按下 C-f - abo-abo
@abo-abo 噢,确实是这样,谢谢。 - assem
我认为这是有史以来最令人讨厌的功能。 - Dodgie
3个回答

42
以下是完全禁用该功能的内容:
(setq ido-auto-merge-work-directories-length -1)

我从来没有看到它的价值,所以完全禁用它可能对许多人有意义。


M-x customize-variable ido-auto-merge-work-directories-length(说明:这是一个用于Emacs编辑器的命令,不是独立的文本) - Lassi

16

这里有另一种使用Ido的选项:

  1. 像平常一样,输入 C-x C-f
  2. 使用Ido搜索查找您想要在其中创建新文件的目录。
  3. 随时再次输入 C-f,Emacs将返回旧的 find-file 功能。

然后您可以输入所需的文件名,Emacs会创建一个新的缓冲区。因此,如果您输入 C-x C-f C-f file_name RET,它将临时在当前目录中创建一个名为 file_name 的缓冲区。


12

我找到了一个简单的解决方案:

(setq ido-auto-merge-delay-time 9)

这里的时间单位是秒。我可以设置一个非常大的数字来完全禁用此功能。


2
或者将 ido-auto-merge-work-directories-length 设置为 -1 以禁用。 - assem
@woodings,这个问题困扰了我一段时间,当我使用ido时,最终我决定去寻找解决方案。在我找到这个页面之前,我发现当你使用ido时,你可以只使用C-f返回到正常模式而不是ido,但是你的解决方案似乎更好。谢谢! - CodyChan

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