如何让 emacs 忽略一些特定的文件名,完成?

How to make emacs ignore some specific file names, for completion?

在 emacs 中,当我输入文件名的开头,然后按 tab 进行自动完成时,我得到的是:

Possible completions are:

dummy.cmi dummy.cmx

dummy.ml dummy.o

我想让emacs忽略目标文件(.o, .cmx, .cmi)直接补全 dummy.ml

有没有办法在 emacs 中指定该行为?某种 .emacsignore 机制,如 git?

控制完成时忽略的文件扩展名的变量是completion-ignored-extensions。它应该已经有几个扩展名,但您可以添加自己的扩展名。

如果你M-x customize-variable RET(即Meta+x,输入customize-variable并点击输入) 然后输入:completion-ignored-extensions 回车

您现在将获得其中已有内容的列表。您还可以删除条目并添加新条目。

您也可以将此添加到您的 init.el/.emacs:

(add-to-list 'completion-ignored-extensions ".blah")

要添加多个元素,而不是复制该行:

(setq completion-ignored-extensions
    (append completion-ignored-extensions
        (quote
        (".ext1" ".ext2" ".ext3"))))