Emacs:强制ido-mode忘记历史记录

7

我想知道是否可以让ido不记住我的历史记录,并且只在我搜索文件时显示当前目录中存在的文件的完成情况。我知道这个历史记录功能有时很有用,但我经常会因为认为我正在编辑当前目录中名为“abc.txt”的文件,而实际上我正在编辑之前访问过同名文件(通常发生在当前目录中没有“abc.txt”时,我错误地认为)。从阅读ido.el文件中,我认为可以在我的.emacs文件中设置以下内容(也在运行emacs实例时评估了这些表达式):

(custom-set-variables
 '(ido-enable-last-directory-history nil)
 '(ido-record-commands nil)
)

我已经在~/中删除了一个名为.ido.last的文件,但它仍然记住我在做出这些更改之前访问过的一些先前的文件。我该如何清除我的历史记录?我不是完全确定上面两个变量的区别,但似乎已经解决了保持ido不再记住我将来访问的文件的问题。

谢谢你的帮助!


啊,我在尝试删除~ / .ido.last之前可能有另一个emacs实例运行 - 删除~ / .ido.last似乎有效,并且上面的命令可以防止它记住新的命令! - hatmatrix
请将您的评论作为答案,并将自己的答案标记为已接受的答案,以便这个问题不再像一个未回答的问题,供寻求帮助的人使用。 - Ryan McGeary
抱歉,我不知道关于SO礼仪的那部分。 - hatmatrix
3个回答

8
删除~/.ido.last文件并按照上述设置变量似乎可以防止ido搜索以前访问过的文件。
编辑:实际上,这项任务的完整自定义应该是:
(custom-set-variables
 '(ido-enable-last-directory-history nil)
 '(ido-record-commands nil)
 '(ido-max-work-directory-list 0)
 '(ido-max-work-file-list 0))

4

我经常遇到这种情况。假设我在目录/path/to/dir中,尝试编辑abc.txt,如果/path/to/dir/abc.txt不存在,而/somewhere/else/abc.txt存在,那么(ido-find-file)会“友好地”将我弹送到/somewhere/else/abc.txt

在这种情况下,当在进行(ido-find-file)时,在迷你缓冲区使用CTRL-F会恢复(find-file)的通常行为,这样我就可以强制Emacs编辑/path/to/dir/abc.txt


这对我真的很有帮助! - Frei Zhang

1
ido-auto-merge-work-directories-length设置为-1会禁用自动目录切换。

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