2013-02-13 8 views
8

Ich habe folgendes in meiner .emacs-Datei:Wie Dired zu bekommen Dateien zu ignorieren, mit bestimmten Erweiterungen

(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$")) 

Aber C-x d noch zeigt mir .pdf und .tex-Dateien. Habe ich in dieser letzten Zeile die Syntax falsch verstanden?

Bonusfrage: Gibt es eine Möglichkeit, Dired zu veranlassen, versteckte Verzeichnisse wie .git-Ordner zu verstecken?

Antwort

12

Ihre Regexp wird *-t.tex Dateien entsprechen, nicht *.tex Einsen.

Mit den jüngsten Version von Emacs, sollte es ausreichen, den folgenden Abschnitt zu ~/.emacs hinzufügen zu filtern, was Sie wollen:

(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$")) 

Update: standardmäßig dired-omit-Dateien regexp Filter aus speziellen Verzeichnissen . und ... Wenn Sie dieses Verhalten nicht wünschen, können Sie nur Standardwerte außer Kraft setzen (anstatt sie mit concat vererben):

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

Die regexp ^\\.[^.] wird eine beliebige Zeichenfolge der Länge passen 2+ mit einem Punkt, wo zweiten Zeichen beginnen ist ein beliebiges Zeichen außer dem Punkt selbst. Es ist nicht perfekt (wird nicht mit Dateinamen wie ".. foo" übereinstimmen), sollte aber die meiste Zeit in Ordnung sein.

+0

Danke! Das oben genannte scheint auch das '..' oben in meinem Dired-Buffer zu entfernen, was mir erlaubt, im Verzeichnis nach oben zu gehen, ohne '^' drücken zu müssen. Gibt es eine Möglichkeit, die '..' Navigation wiederherzustellen, aber trotzdem Ordner wie' .git' zu verstecken? – incandescentman

15

Eine einfache und sehr allgemeine Lösung, die auf alle Extras nicht verlassen können, ist C-u s zu tun, um die ls Fahnen zu ändern und sofort aktualisieren (das heißt, C-u s kümmert sich erfrischend auch, so gibt es sehr wenig Typisierung beteiligt). Normalerweise möchten Sie -a entfernen, um dotfiles zu verbergen. Aber Sie können alles tun, was Sie bereits in der Shell-Konsole tun können. Das ist weit mehr als das, was ein einfacher Toggle-Modus bieten könnte (auf Kosten von zusätzlichen Tastenanschlägen). Und es gibt eine Geschichte früherer Flaggen, also ist das "Umschalten" auch ziemlich schnell.

Verwandte Themen