Emacs ido-mode和在目录中创建新文件时,我打字时它会不断更改目录

38
当在emacs中使用ido-mode创建新文件时,使用C-x C-f (开始输入一个尚不存在的新文件名)RET,ido-mode常常会妨碍我。通常应该创建一个新文件,但是当我使用ido-mode时,我必须非常快速地输入新文件名,否则ido-mode会决定将我移动到包含与新文件名匹配的文件的目录中,导致我打开那个文件,而不是创建新文件。 有人知道如何强制ido-mode避免查找当前所在目录以外的目录吗?
3个回答

38

您可以使用以下代码禁用合并(ido vulgo中的“查看其他目录”):

(setq ido-auto-merge-work-directories-length -1)

但你也可以在ido模式下使用C-z撤销合并。


2
没错,我从函数的名称中无法猜出它的目的。完美运行。 - d11wtq
3
谢谢,我之前对于ido上下文中"merge" 的意思不是很清楚,直到我看到了这个答案才搞明白。请问还有其他需要翻译的吗? - Brighid McDonnell
“C-z” 得到我所需要的(我曾经有完全相同的问题);谢谢!这样我可以保持这种行为(它很方便,有时候),但还是可以在我不想要的时候有办法退出它(大多数情况下)。 - lindes
有时候,这很方便。如果你愿意的话,你也可以禁用它并使用M-s来触发合并(我是这样做的)。 - graywolf

27

这样做确实非常有帮助。基本上,一直使用ido-mode,直到找到正确的目录,然后再次按C-f以退出ido-mode并输入新文件名。

C-x C-f 导航到目录 C-f 输入新文件名 RET


我有一种感觉,这个回答应该比其他回答获得更多的赞。谢谢。 - user950658

4

4
只有在输入文件名之前就切换目录才有效。如果我在输入文件名的一半停顿,它就会切换目录,然后当我继续输入时,它只会匹配主目录中其他位置的文件。 - d11wtq
2
嗯,实际上,如果我的计划是创建一个新文件,只需双击<kbd>C-x</kbd> <kbd>C-f</kbd> <kbd>C-f</kbd>似乎有所帮助,因为它跳出了ido模式。虽然不完美,但比改变目录要好。 - d11wtq

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