Düzenli ifade
Normal ifade kullanmak için deneyebilirsiniz find-lisp-find-dired
. Bu komut standart lib'e aittir. tamamen elisp ile yazılan find-lisp , yani harici bir find
program kurmanıza gerek yoktur
.
Örneğin, ~ / lisp dizini altındaki '.el' uzantılı tüm dosyaları gösterir:
M-x find-lisp-find-dired RET ~/lisp RET \.el\' RET
(Maç onurlandırır case-fold-search
).
joker
Bir sonraki Emacs sürümünden (v26.1) Dired'in dosya adı bağımsız değişkeninin dizin kısmındaki wilcardları desteklediğini belirtmek gerekir. Bu şu anlama gelir:
C-x d ~/soft/*/*.c RET
(Maç büyük / küçük harfe duyarlıdır).
Bu komut, Dired buffer'da '.c' uzantılı tüm dosyaları, '~ / soft' altında 2 derinlik seviyesi gösterir . Bu, '~ / soft / foo / bar.c' gibi tüm dosyaların listeleneceği, ancak '~ / soft / qux.c'
veya '~ / soft / foo / baz / qux.c' gibi dosyaların listelenmeyeceği anlamına gelir
.
Aynı ama büyük / küçük harfe duyarlı değil:
C-x d ~/soft/*/*.[cC] RET
Bonus
Dired'i elisp, 'ls-lisp' veya 'eshell-ls' ile uygulanan bir 'ls' ile çalıştırıyorsanız, joker karakterle eşleşen tüm dosyaları aşağıdaki sözdizimiyle özyineli olarak listeleyebilirsiniz:
C-x d ~/soft/**/*.c RET
'**' not edin. Bu durumda , '~ / soft / qux.c' bile olsa, '~ / soft' altındaki joker karakterle eşleşen tüm dosyalar gösterilir .
Ancak, insert-directory-program
joker karakterini kullandığınızda sistem kabuğu tarafından yapılır; başka bir deyişle, bu özyinelemeli '**' sözdizimi yalnızca kabuğunuz tarafından destekleniyorsa çalışır. Örneğin zsh bunu destekliyor, ama bash desteklemiyor. Zsh olan diğer mermilerle önceki komut aynı şekilde yapılır:
C-x d ~/soft/*/*.c RET