2013-02-13 19 views
8

ho messo il seguente nel mio file .emacs:Come arrivare Dired di ignorare i file con estensioni specifiche

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

Ma C-x d mi mostra ancora i file .pdf e .tex. Ho sbagliato la sintassi in quest'ultima riga?

Domanda bonus: C'è un modo per far sì che Dired nasconda le directory nascoste, come le cartelle .git?

risposta

12

Il tuo regexp corrisponderà a *-t.tex file, non a *.tex.

Con la versione recente di Emacs, dovrebbe essere sufficiente per aggiungere la seguente sezione per ~/.emacs per filtrare ciò che si vuole:

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

Aggiornamento: di default, dired-omettere-files filtri espressioni regolari fuori directory speciali . e ... Se non si desidera questo comportamento, si può semplicemente ignorare le impostazioni predefinite (invece di ereditare con concat):

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

Anche l'espressione regolare ^\\.[^.] corrisponderà a qualsiasi stringa di lunghezza 2+ iniziare con un punto in cui secondo carattere è qualsiasi carattere tranne il punto stesso. Non è perfetto (non corrisponderà ai nomi di file come "..foo"), ma dovrebbe essere ok per la maggior parte del tempo.

+0

Grazie! Quanto sopra sembra anche rimuovere il '..' nella parte superiore del mio buffer Dired che mi permette di navigare su directory senza dover premere'^'. C'è un modo per ripristinare la navigazione '..', ma nascondere comunque cartelle come' .git'? – incandescentman

15

Una soluzione semplice e molto generale, che non si basa su nessun extra è quello di fare C-u s per cambiare le ls bandiere e subito refresh (vale a dire, C-u s si prende cura di rinfrescante anche, quindi non c'è molto poco di battitura coinvolti). Di solito si desidera rimuovere -a per nascondere i dotfile. Ma puoi fare tutto ciò che sei già in grado di fare nella console della shell, che è molto più di ciò che una semplice modalità di commutazione può offrire (al costo di alcuni tasti in più). E c'è una cronologia delle bandiere precedenti disponibili, quindi anche il "toggling" è abbastanza veloce.

Problemi correlati