İlk cevap çok güzel fakat Emacs'in modern versiyonları hakkında bazı eleştirel detaylar bırakıyor. Kendimi Emacs'la tanıyordum, bu yüzden yeni başlayanlar bunun farkında olmayabilir. Amacınız bir PROJE içindeki bir dosyadaki metni aramak olduğu için, önce MELPA deposunu kullanarak Projectile'i yükleyeceksiniz.
Bu, paketi .emacs.d içine yükler ve $ USER dizininizdeki (.emac dosyasını oluşturmuş olduğunuz varsayılarak) .emacs'a bazı temel yapılandırmalar ekler (Emacs yüklemenizde Projectile isteme gibi).
Ancak yine de etkinleştirmeniz ve keymap öneklerini ilişkilendirmeniz gerekir, böylece mini arabelleğe davet edebilirsiniz.
Kabul edilen cevap aşağıdaki komutu belirtir:
C-c p s g
Bu keymap önekiyle Projectile yapılandırmadıysanız, bu işe yaramaz. Ancak Cc Cp'yi .emacs içindeki Project komutu olarak kullanacak şekilde yapılandırdım:
(projectile-mode +1)
(define-key projectile-mode-map (kbd "C-c C-p") 'projectile-command-map)
Şimdi bu verildiğinde, grep kullanarak bir projedeki dosyalarda metin aramaları yapabiliyorum:
C-c C-p f # switch to a project first
C-c C-p s g # perform grep search in project
Onu yıkmak için C-c C-p
mermi çağıracağı ve s g
grep araması gerçekleştirir. Aramanızın visit_contact
ve bir projede Ruby'nin rspec'ini aradığınızı varsayarak, bunun gibi güzel bir çıktı alacaksınız :
./spec/support/capybara_classification_code_helper.rb:21: def visit_contact
./spec/features/admin_edits_classification_code_role_dynamic_field_spec.rb:8: visit_contact
./spec/features/admin_edits_classification_code_role_dynamic_field_spec.rb:33: visit_contact
./spec/features/user_views_global_filters_from_line_item_spec.rb:9: visit_contact
rgrep
, varsayılan olarak "işe yaramaz dosyalar" ölçütlerinizle eşleşen tüm dosyaları hariç tuttuğu için, biraz kafa karıştırıcıdır.