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

ghi*_*esZ 3 emacs file completion

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

可能的完成有:

dummy.cmi dummy.cmx

dummy.ml dummy.o

我想让 emacs 忽略目标文件(.o、.cmx、.cmi)并直接用dummy.ml完成

有没有办法在 emacs 中指定该行为?某种类似于git 的.emacsignore 机制?

sbr*_*brk 6

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

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

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

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

(add-to-list 'completion-ignored-extensions ".blah")
Run Code Online (Sandbox Code Playgroud)

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

(setq completion-ignored-extensions
    (append completion-ignored-extensions
        (quote
        (".ext1" ".ext2" ".ext3"))))
Run Code Online (Sandbox Code Playgroud)