当我执行以下操作时,如何防止 Emacs 显示所有我不感兴趣的文件(例如 ~ 备份文件、.pyc 文件或 .orig 文件): C-x C-f TAB ?
它在一方面起作用:如果我知道我要打开的文件以 foo 开头,并且我输入 foo TAB 那么迷你缓冲区会正确地自动完成所有到 foo.py 的方式。它正确地忽略了 foo~ 和 foo.pyc,因为 ~ 和 .pyc 都在 completion-ignored-extensions 中。 。如果我真的想通过输入自己的所有字母,它也可以正确地让我打开任一被忽略的文件。
但是,如果我只是按 TAB 来调出完成列表缓冲区,则该列表包含带有 completion-ignored-extensions 中扩展名的文件,这使得它非常很难找到我要找的东西。
显然,忽略无趣文件的代码已经存在并且可以工作。如何让完成列表缓冲区遵守completion-ignored-extensions?
(顺便说一句,我可以让 dired 表现出类似的行为吗?)
最佳答案
这条建议过滤掉'completion-ignored-extensions
中列出的扩展名的文件:
(defadvice completion--file-name-table (after
ignoring-backups-f-n-completion
activate)
"Filter out results when they match `completion-ignored-extensions'."
(let ((res ad-return-value))
(if (and (listp res)
(stringp (car res))
(cdr res)) ; length > 1, don't ignore sole match
(setq ad-return-value
(completion-pcm--filename-try-filter res)))))
注意:这不会影响dired
。
对于 dired
问题,请将其添加到您的 .emacs
(eval-after-load "dired"
'(require 'dired-x))
(add-hook 'dired-mode-hook
(lambda ()
(dired-omit-mode 1)))
阅读documentation for dired-x了解那里有什么可用的。
关于emacs - 不要在 Emacs 完成窗口中显示无趣的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1731634/