我将以下内容放入我的 .emacs 文件中:
(require 'dired-x)
(add-hook 'dired-load-hook '(lambda () (require 'dired-x)))
(setq dired-omit-files-p t)
(setq dired-omit-files
(concat dired-omit-files "\\|^\\..+$\\|-t\\.tex$\\|-t\\.pdf$"))
但是
C-x d
仍然向我展示 .pdf 和 .tex 文件。我在最后一行弄错了语法吗?额外问题:有没有办法让 Dired 隐藏隐藏目录,比如 .git 文件夹?
最佳答案
您的正则表达式将匹配 *-t.tex
文件,而不是 *.tex
那些。
使用最新版本的 Emacs,将以下部分添加到 ~/.emacs
应该就足够了过滤你想要的:
(require 'dired-x)
(setq-default dired-omit-files-p t) ; this is buffer-local variable
(setq dired-omit-files
(concat dired-omit-files "\\|^\\..+$\\|\\.pdf$\\|\\.tex$"))
更新:默认情况下,dired-omit-files regexp 过滤掉特殊目录
.
和 ..
.如果你不想要这种行为,你可以覆盖默认值(而不是用 concat 继承它们):(setq dired-omit-files "^\\.[^.]\\|\\.pdf$\\|\\.tex$")
正则表达式
^\\.[^.]
将匹配任何以点开头的长度为 2+ 的字符串,其中第二个字符是除点本身之外的任何字符。它并不完美(不会匹配像“..foo”这样的文件名),但大多数时候应该没问题。
关于emacs - 如何让 Dired 忽略具有特定扩展名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14850103/