emacs:强制ido-mode忘记历史

时间:2009-09-03 01:58:27

标签: emacs elisp

我想知道我是否可以让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记住我将来访问的文件的技巧?

感谢您的帮助!

3 个答案:

答案 0 :(得分: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))

答案 1 :(得分:4)

这种情况一直发生在我身上。鉴于我在目录/path/to/dir中并且我尝试编辑abc.txt,如果(ido-find-file)不存在,/somewhere/else/abc.txt会“帮助”将我弹出到/path/to/dir/abc.txt /somewhere/else/abc.txt确实如此。

在这种情况下,当CTRL-F中间的迷你缓冲区中的(ido-find-file)恢复为(find-file)的常规行为时,我可以强制Emacs编辑/path/to/dir/abc.txt ,该死的。

答案 2 :(得分:1)

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