¿Se puede mostrar solo la parte coincidente?

7

¿O hay una herramienta alternativa (tal vez alguna opción para isearch) que muestre solo las coincidencias en un búfer separado vinculado al búfer original?

Caso de uso

Tengo un archivo de registro con líneas muy largas. Cuando la línea coincidente aparece en el *occur*búfer, todavía está demasiado abarrotada para ser útil (debido al ajuste y a mucha información adicional).

No es difícil escribir algo como esto, pero parece tan básico que debe haberse hecho antes.

Si mi explicación no fue lo suficientemente buena, piense grep -Po search-string.

wvxvw
fuente
No conozco otro comando para esto, pero ¿por qué no usar solo M-x grepcon -Po? (por ejemplo, grep -Po -nH -e search-string *.el) Eso funciona para mí. El búfer *grep*es casi como ocurre, ¿no?
Dibujó
@Drew ciertamente funcionaría, pero necesitaría guardar el búfer en un archivo (no es un problema en mi caso, pero en general, querría trabajar con búferes).
wvxvw
Lo siento, no entiendo. ¿Por qué necesitaría guardar el búfer en un archivo? ¿De qué manera estás usando un archivo para los resultados de búsqueda, aquí? (No veo nada de eso en la pregunta).
Drew
@Drew no en este caso específico, pero a menudo trabajo con buffers que no están relacionados con ningún archivo. Sería bueno poder mostrarles coincidencias también. Por ejemplo: una sesión en la consola interactiva, un buffer de salida del proceso, una página web abierta en algún navegador integrado, etc.
wvxvw
Oh, ya veo, por supuesto. Lo siento, no lo estaba entendiendo. Pensé que estabas hablando de que el *grep*búfer está asociado con un archivo, en lugar de buscar búferes que no sean archivos.
Dibujó

Respuestas:

4

occurpuede hacer esto con argumento prefijo C-u M-x occur.

link0ff
fuente
Oh, lo estaba intentando mal, claro, ahora veo.
wvxvw
1
Hay algo que no noté al principio: cuando occurse llama de esta manera, las coincidencias que muestra ya no están vinculadas al lugar en el búfer original del que provienen. No parece haber una manera de hacerlos interactivos, ¿o sí?
wvxvw
Actualmente se produce no vincula solo coincide con el búfer original. Pero es sencillo implementar esta función, así que para incluirla en Emacs, le recomiendo que envíe una solicitud de función a [email protected]
link0ff