Ekspresi Reguler
Untuk menggunakan regex, Anda mungkin juga mencoba find-lisp-find-dired
. Perintah ini milik lib standar. find-lisp , yang seluruhnya ditulis dalam elisp yaitu, Anda tidak perlu menginstal find
program eksternal
.
Sebagai contoh, berikut ini menunjukkan semua file dengan ekstensi '.el' di bawah direktori ~ / lisp:
M-x find-lisp-find-dired RET ~/lisp RET \.el\' RET
(Pertandingan itu menghormati case-fold-search
).
Wildcard
Perlu dicatat bahwa sejak rilis Emacs berikutnya (v26.1) Dired mendukung kartu wil di bagian direktori dari argumen nama file. Itu berarti bekerja sebagai berikut:
C-x d ~/soft/*/*.c RET
(Pertandingan ini peka huruf besar-kecil).
Perintah ini menunjukkan dalam buffer Dired semua file dengan ekstensi '.c', 2 level kedalaman di bawah '~ / soft' . Itu berarti, semua file seperti
'~ / soft / foo / bar.c' akan terdaftar, tetapi bukan file seperti '~ / soft / qux.c'
atau '~ / soft / foo / baz / qux.c' .
Yang sama tetapi tidak peka huruf besar-kecil:
C-x d ~/soft/*/*.[cC] RET
Bonus
Jika Anda menjalankan Dired dengan 'ls' diimplementasikan di elisp, 'ls-lisp' atau 'eshell-ls', maka Anda dapat secara rekursif mendaftarkan semua file yang cocok dengan wildcard dengan sintaksis berikut:
C-x d ~/soft/**/*.c RET
Catat '**'. Dalam hal ini semua file di bawah '~ / soft' yang cocok dengan wildcard ditampilkan, bahkan '~ / soft / qux.c' .
Namun, saat Anda menggunakan insert-directory-program
ekspansi wildcard dibuat oleh shell sistem; itu artinya, sintaksis '**' rekursif ini hanya berfungsi jika didukung oleh shell Anda. Misalnya zsh memang mendukungnya, tetapi bash tidak. Dengan shell lain yang zsh, perintah sebelumnya akan melakukan hal yang sama seperti:
C-x d ~/soft/*/*.c RET