La primera respuesta es hermosa, pero deja de lado algunos detalles críticos sobre las versiones modernas de Emacs. Yo mismo conozco a Emacs, por lo que otros recién llegados podrían no ser conscientes de esto. Dado que su objetivo es buscar texto DENTRO de un archivo en un PROYECTO, primero debe instalar Projectile utilizando el repositorio MELPA.
Esto instala el paquete en .emacs.d y agrega alguna configuración básica a .emacs en su directorio $ USER (suponiendo que haya creado el archivo .emacs), como requerir Projectile en su instalación de Emacs.
Sin embargo, aún necesita habilitarlo y asociar prefijos de mapa de teclas, por lo que puede invocarlo en el mini buffer.
La respuesta aceptada menciona el siguiente comando:
C-c p s g
Esto no funcionará, a menos que configure Projectile con este prefijo de mapa de teclas. Pero lo configuré para usar Cc Cp como comando para Project en .emacs:
(projectile-mode +1)
(define-key projectile-mode-map (kbd "C-c C-p") 'projectile-command-map)
Ahora dado esto, puedo realizar búsquedas de texto en archivos en un proyecto usando grep:
C-c C-p f # switch to a project first
C-c C-p s g # perform grep search in project
Para desglosarlo, C-c C-p
invocará Proyectil y s g
realizará la búsqueda grep. Obtendrá un resultado hermoso como este, suponiendo que su búsqueda sea visit_contact
y está buscando Ruby rspec en un proyecto:
./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
es un poco confuso, dado que excluye todos los archivos que coinciden con sus criterios de "archivos inútiles" de forma predeterminada.