Перша відповідь прекрасна, але вона залишає деякі критичні деталі про сучасні версії Emacs. Я сам знав Emacs, тому інші прибульці можуть не знати про це. З огляду на те, що ваша мета - пошук тексту ВІД файлу в ПРОЕКТІ, ви спочатку встановите Projectile за допомогою сховища MELPA.
Це встановлює пакет у .emacs.d і додає базову конфігурацію до .emacs у вашому каталозі $ USER (якщо припустити, що ви створили файл .emacs), наприклад, вимагаючи Projectile у вашій установці Emacs.
Однак вам все-таки потрібно ввімкнути його та пов’язати префікси клавіатури, щоб ви могли викликати його у міні-буфері.
У прийнятій відповіді згадується така команда:
C-c p s g
Це не спрацює, якщо ви не налаштуєте Projectile з цим префіксом картки. Але я налаштував його на використання Cc Cp як команди для Project у .emacs:
(projectile-mode +1)
(define-key projectile-mode-map (kbd "C-c C-p") 'projectile-command-map)
Враховуючи це, я можу виконувати пошук тексту у файлах проекту за допомогою grep:
C-c C-p f # switch to a project first
C-c C-p s g # perform grep search in project
Щоб зламати його, C-c C-p
викличе Projectile і s g
здійснить пошук grep. Ви отримаєте такий прекрасний вихід, якщо припустити, що Ви шукаєте visit_contact
і шукаєте rspec Ruby в проекті:
./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
трохи заплутаний, враховуючи, що він за замовчуванням виключає всі файли, що відповідають вашим критеріям "непотрібних файлів".