Mostrar apenas linhas que contêm frase / regex

8

Gostaria de ver todas as linhas do buffer atual, que contêm alguma frase ou regex de correspondência. Exemplo:

Meu buffer:

dam madam
madam

this is da
m a
dam 1
dam 2
dam pi
dam 321:)
is dam 2?

Procurando dam. Resultado: dam madam dam 1 dam 2 dam pi dam 321:) is dam 2?

O mesmo buffer. Procurando por regexp: ^dam\s\d. Resultado: dam 1 dam 2 dam 321:)

Como posso fazer isso?

MatthewRock
fonte
helm-swoop github.com/ShingoFukuyama/helm-swoop fornece isso como uma pesquisa interativa, suportando regexps. Ele fornece um menu temporário de linhas correspondentes, a partir do qual você pode pular rapidamente para uma para edição.
Tyler
4
Como alternativa, a função occurinterna cria um novo buffer que lista todas as linhas que correspondem ao seu regexp. Bater epermite editar essas linhas diretamente do buffer de ocorrência.
Td #

Respostas:

13

... veja todas as linhas do buffer atual ...

Com comandos internos e nenhum pacote ou dependência externa no

um novo buffer, use:

M-x occur

o mesmo buffer, use:

M-x keep-lines
Usuário Emacs
fonte
Ótimo! Era isso que eu estava procurando!
MatthewRock
1

O comando múltiplo Sincelosicicle-occur (vinculado C-'no modo Sincelo) faz isso.

À medida que você digita no minibuffer, as linhas correspondentes ao padrão digitado são mostradas como candidatas à conclusão. Seu padrão pode ser tão simples ou complexo (por exemplo, uma regexp) quanto você desejar. Você pode alterar o padrão dinamicamente e o conjunto de correspondências muda de acordo.

Você pode combinar padrões de pesquisa, ou seja, pode usar qualquer número deles para restringir o conjunto de ocorrências de pesquisa. Normalmente, é muito mais fácil usar dois ou mais padrões de pesquisa simples do que tentar criar uma regexp complexa que faça exatamente o que você deseja. (Mas cada um dos padrões de pesquisa individuais pode ser tão complexo quanto você quiser.)

Você pode alternar entre partidas ou visitar qualquer uma delas, em qualquer ordem. Você pode até substituir correspondências seletivamente, sob demanda.

Consulte a Visão geral da pesquisa de sincelos .

Desenhou
fonte