Pode ocorrer a exibição apenas da parte correspondente?

7

Ou existe uma ferramenta alternativa (talvez alguma opção para isearch?) Que mostre apenas as correspondências em um buffer separado vinculado ao buffer original?

Caso de uso

Eu tenho um arquivo de log com linhas muito longas. Quando a linha correspondente aparece no *occur*buffer, ela ainda está confusa demais para ser útil (devido ao agrupamento e a muitas informações extras).

Não é difícil escrever algo assim, mas parece tão básico que já deveria ter sido feito antes.

Se minha explicação não foi boa o suficiente, pense grep -Po search-string.

wvxvw
fonte
Não conheço outro comando para isso, mas por que não usar apenas M-x grepcom -Po? (por exemplo grep -Po -nH -e search-string *.el) Isso funciona para mim. O buffer *grep*é praticamente como ocorre, não?
Tirou
@ Drew que certamente funcionaria, mas você precisaria salvar o buffer no arquivo (não é um problema no meu caso, mas em geral, você gostaria de trabalhar com buffers).
Wdxvw
Desculpe, eu não entendo. Por que você precisaria salvar o buffer em um arquivo? De que maneira você está usando um arquivo para os resultados da pesquisa aqui? (Eu não vejo nada sobre isso na pergunta.)
de Drew
@ Drew não neste caso específico, mas muitas vezes eu trabalho com buffers que não estão relacionados a nenhum arquivo. Seria bom poder exibir correspondências para eles também. Por exemplo: uma sessão no shell interativo, um buffer de saída do processo, uma página da web aberta em algum navegador incorporado etc.
wvxvw
Oh, entendo - é claro. Desculpe, eu não estava entendendo. Eu pensei que você estava falando sobre o *grep*buffer ser associado a um arquivo, em vez de procurar buffers que não são arquivos.
21715 Drew

Respostas:

4

occurpode fazer isso com o argumento prefix C-u M-x occur.

link0ff
fonte
Oh, eu estava tentando errado, claro, agora entendi.
Wdxvw
11
Há algo que eu não percebi no início: quando occuré chamado dessa maneira, as correspondências exibidas não são mais vinculadas ao local no buffer original de onde vieram. Não parece haver uma maneira de torná-los interativos, ou é?
Wdxvw
A ocorrência atualmente não vincula apenas as correspondências ao buffer original. Mas é simples de implementar esse recurso, de modo a incluí-lo para Emacs eu recomendo que você enviar um pedido de recurso para [email protected]
link0ff