如何获得Dired忽略带有特定扩展名的文件(How to get Dired to ignore f

2019-07-19 19:54发布

我把我的.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$"))

Cx d仍显示我.pdf和.tex文件里。 难道我得到的语法错误在最后一行?

奖金的问题:是否有办法让Dired隐藏隐藏目录,像git的文件夹?

Answer 1:

你的正则表达式匹配*-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-省略-文件的正则表达式过滤掉特殊目录... 。 如果你不希望这种行为,你可以覆盖默认值(而不是用CONCAT继承它们):

(setq dired-omit-files "^\\.[^.]\\|\\.pdf$\\|\\.tex$")

正则表达式^\\.[^.] 2+以一个点,其中第二个字符是除了点本身的任何字符开始将匹配长度的任何字符串。 它并不完美(不会匹配像“..foo”文件名),但应该是大部分时间确定。



Answer 2:

它不依赖于任何额外的简单,非常一般的解决办法是做Cu s改变ls标志,并立即刷新(即Cu s照顾清爽的同时,所以涉及很少打字)。 通常你会想删除-a隐藏点文件。 但是你可以做你已经能够在外壳控制台,它远远超过什么简单的切换模式可以提供(在一些额外keypressings的费用)做的一切。 并且有可用先前标志的历史,所以“切换”是相当快了。



文章来源: How to get Dired to ignore files with specific extensions
标签: emacs dired