emacs - 不要在 Emacs 完成窗口中显示无趣的文件

标签 emacs autocomplete find dot-emacs

当我执行以下操作时,如何防止 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/

相关文章:

Emacs:如何通过值查找变量?

javascript - 使用 jquery ui 组合框的问题

angular - 如何在点击时使用 Chiplist 自动展开/折叠 Angular Material Autocomplete

bash - 如何列出空文件? ( bash )

在跨多行的文件中查找重复/重复或唯一词

xml - Emacs 匹配标签高亮显示

Emacs+Slime lower-lisp 异常退出,代码为 5

javascript - 如何在 Emacs 的 javascript 模式下设置 2 个空格缩进?

java - 使用 IntelliJ IDEA 在 Java 项目中突出显示 Jenkinsfile 语法

linux - 在 Linux 中查找文件然后报告搜索到的文件的大小