Первый ответ прекрасен, но он оставляет некоторые важные детали о современных версиях 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 Руби в проекте:
./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
немного сбивает с толку, учитывая, что он исключает все файлы, соответствующие критериям «бесполезных файлов» по умолчанию.