Si usa la biblioteca Icicles , puede hacer este tipo de cosas fácilmente. Lo que está pidiendo (si lo entiendo correctamente) es buscar solo dentro de ciertos contextos de búsqueda .
Por ejemplo, como en este caso, es posible que desee buscar solo dentro de las definiciones de funciones : los contextos de búsqueda son definiciones de funciones. En Lisp, esto sería cosas como defun
s.
Icicles tiene varios comandos de búsqueda de Icicles predefinidos para buscar definiciones como esta. Estos se denominan colectivamente comandos Icicles Imenu .
Para buscar solo definiciones de comandos, puede usar el comando icicle-imenu-command-full
. Para buscar solo definiciones de funciones no interactivas, use el comando icicle-imenu-non-interactive-function-full
.
Más allá de la búsqueda de definiciones, puede definir fácilmente cualquier tipo de contexto para buscar. La forma más simple es proporcionar una expresión regular. El comando le icicle-search
solicita la expresión regular de búsqueda que define el contexto. Alternativamente, puede usar una función para definir los contextos de búsqueda.
Otras posibilidades incluyen:
Buscar el texto de diferentes tipos de COSAS (p. Ej., Sexps, oraciones, listas, cadenas, comentarios, elementos XML, ...), es decir, ignorar otro texto fuera de las COSAS.
Buscar zonas de texto que tienen propiedades de texto o superposición, es decir, ignorar otro texto.
NOTA:
Otras respuestas aquí que mencionan occur
y similares ( helm-occur
) proporcionan un tipo limitado de búsqueda de contexto: los contextos de búsqueda son solo las líneas de un búfer.
Eso es mucho más limitado que, por ejemplo, buscar dentro de las definiciones de funciones completas, que es lo que creo que está pidiendo. Con Icicles , el comando icicle-occur
(vinculado a C-c '
) le permite buscar dentro de líneas como contextos de búsqueda.
helm-swoop
, pero su pregunta (y especialmente el título) no es muy clara al respecto. Tal vez no recibí tu pregunta porque no estoy familiarizado con el timón.