Grep rekursif dalam direktori harus menjadi hal yang paling sederhana, tetapi saya belum menemukan resep untuk membuatnya bekerja. Saya juggling antara perintah berikut dan saya tidak yakin yang memiliki fungsi yang terkubur di dalamnya:
helm-find-files
: Masalahnya adalah ini sangat buruk dalam menemukan direktori secara rekursif.projectile-find-dir
: Ini bagus untuk menemukan dir! Namun meskipun menggunakan helm lengkap Anda tidak berakhir dalam mode helm, jadiC-u C-s
perintahnya tidak bekerja di sini.helm-find
: mendapatkan rekursi yang benar tetapi menargetkan file, bukan direktorihelm-projectile-find-dir
: Tampaknya menjadi apa yang saya inginkan.
helm
projectile
grep
Djechlin
sumber
sumber
Jawaban:
Anda memiliki dua cara:
Gunakan
helm-projectile-grep/ack/ag
: Anda dapat mencari semuanya mulai dari root proyek. Kemudian jika Anda ingin menyimpan hasil pencarian, tekanF3
atau tekanTAB
untuk beralih ke menu tindakan dan pilih tindakan ke-3. Untuk menavigasihgrep
buffer:C-<down>
: pergi ke pertandingan berikutnya dan buka pertandingan.C-<up>
: pergi ke pertandingan sebelumnya dan buka pertandingan.M-<down>
: pergi ke pertandingan berikutnya tanpa membuka pertandingan.M-<up>
: pergi ke pertandingan berikutnya tanpa membuka pertandingan.C-o
: buka kecocokan saat ini di jendela lain.RET
: buka kecocokan saat ini di jendela saat ini.Gunakan
helm-projectile-find-dir
(perhatikanhelm
awalan; Anda harus menggunakan perintah Helm yang tepat darihelm-projectile
paket secara umum): persempit ke direktori yang diinginkan dan tekanC-u C-s
untuk mencari secara rekursif di direktori itu. Jika Anda tidak menekanC-u
, itu hanya mencari di direktori itu tanpa masuk lebih dalam.Semoga itu bisa membantu.
sumber
Untuk grep rekursif sederhana dalam direktori saat ini, hanya:
M-x grep
kemudian, di dalam minibuffer:Run grep (like this): grep -nHr "pattern"
. (perhatikan flag -r).Anda mungkin juga tertarik dengan
rgrep
:sumber
Selain alat yang disebutkan dalam jawaban lain, fungsi keren lainnya adalah
find-grep-dired
membuatdired
buffer berisi semua file yang cocok dengan pola grep rekursif.Itu hanya berjalan
find . \( -type f -exec grep -q -e my-regular-expression \{\} \; \) -ls
dan menampilkan hasilnya dalamdired
buffer.sumber
Anda bisa mencoba
helm-do-grep
. Menyebutnya dengan awalan arg memberi Anda grep rekursif, seperti yang dijelaskan dalam Helm Wiki .Cobalah seperti ini:
C-u helm-command-prefix-key M-g s
sumber
helm-projectile-find-dir
mungkin fungsionalitas yang tepat. Kamu bisaprojectile-find-dir
C-u C-s
pencarian rekursif seperti yang diinginkan.sumber
Paket ini memiliki persis apa yang Anda cari:
https://github.com/syohex/emacs-helm-ag
Nama perintahnya adalah helm-do-ag.
sumber