2013-02-13 1 views
8

я поставил следующий в моем файле .emacs:Как получить Dired игнорировать файлы с определенными расширениями

(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-папки?

ответ

12

Ваше регулярное выражение будет соответствовать *-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»), но должно быть в порядке в большинстве случаев.

+0

Спасибо! Вышеупомянутое, похоже, также удаляет '..' в верхней части моего Dired буфера, что позволяет мне перемещаться вверх по каталогу, не нажимая'^'. Есть ли способ восстановить «..» навигацию, но все же скрыть папки типа '.git'? – incandescentman

15

Простой и очень общее решение, которое не зависит от каких-либо дополнительных услуг, чтобы сделать C-u s изменить ls флаги и сразу же обновить (то есть, C-u s заботится о освежения также, так что очень мало типирование участвует). Обычно вы хотите удалить -a, чтобы скрыть dotfiles. Но вы можете делать все, что вы уже можете сделать в консоли, что намного больше, чем простой режим переключения (за счет некоторых дополнительных нажатий). И есть история предыдущих доступных флагов, поэтому «переключение» тоже довольно быстро.

 Смежные вопросы

  • Нет связанных вопросов^_^