emacs - 如何让 Dired 忽略具有特定扩展名的文件

标签 emacs dired

我将以下内容放入我的 .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/

相关文章:

emacs - 如何在emacs dired中为M命令(更改文件模式)提供递归选项(-R)?

emacs - dired-directory 的值

docker - 全局更改编译命令

Emacs find-grep-dired 然后在给定的正则表达式上自动 isearch-forward

emacs - 每个文件的颜色代码议程 View

emacs - 当磁盘上的文件发生更改时,如何让 Emacs 自动刷新所有缓冲区?

emacs - 按访问时间排序的目录文件

sorting - 根据自定义比较器对 emacs dired 缓冲区进行排序

bash - 如何格式化 emacs 组织模式表中的一列数字?

emacs - 声明 emacs 文件的打开模式