Uma pergunta bastante básica sobre o leme. O que é a janela / comando / recurso do Helm que permite pesquisar texto (de preferência usando regexp
) em qualquer tipo de buffer (por exemplo, incluindo somente leitura como w3m
)?
Em outras palavras, estou procurando o equivalente de Helm aos comandos nativos do Emacs para isearch-forward
( C-s
) / isearch-backward
( C-r
).
Para ilustrar: depois de chamar um dos isearch
comandos nativos ( C-s
ou C-r
), podemos sair do modo de pesquisa de duas maneiras:
podemos sair e retornar ao ponto original (via
C-g
) oupodemos sair e continuar navegando no buffer a partir do ponto atual, ou seja, do texto atualmente correspondido (por
RET
meio de outros).
Estou procurando a segunda dessas duas opções.
Aqui está o que eu tentei até agora:
helm-regexp
: esta é a coisa mais próxima do que estou procurando, mas apenas executa o equivalente aC-s
/C-r
+C-g
(ou seja, leva-nos de volta ao ponto original; nenhuma opção para encerrar a pesquisa e continuar navegando no buffer a partir da correspondência atualmente ponto).helm-do-grep
: parece que isso é apenas para procurar texto em arquivos (ou seja, não funciona no w3m)helm-buffer-run-grep
/-zgrep
: executar este comando / função resulta em uma mensagem de erro no mini-buffer:Running helm command outside of context
quando
helm-mode
ativado, invocaC-s
ouC-r
abre oisearch
recurso nativo do Emacs (não é substituído pela interface do Helm). (talvez exista uma configuração que possamos alterar para que o Helm possa assumir esse comando? ou seja, semelhante à maneira como o Helm assume o comando nativo dewrite-file
(C-x C-w
), que pode ser usado para renomear um arquivo em um buffer aberto. basta fazer um brainstorming.)
helm-occur
comfollow-mode
ativado.Respostas:
Você pode usar helm-ocorrem como uma ferramenta que vem com o módulo básico de helm para isso. Mas para mim, uma das melhores ferramentas baseadas em leme para a pesquisa de buffer é o swoop de Shingo Fukuyama . Você pode obtê-lo no github e via MELPA. Ele tem a funcionalidade necessária para poder largar seu ponto na posição da partida (que pode ser uma regexp). Mas você também pode usar Cg para ter o cursor de volta onde você começou.
Na página helm-swoop no github, você encontrará várias outras funções úteis que este pacote oferece (incluindo pesquisas com vários buffers por helm-multi-swoop e a capacidade de editar as linhas dos resultados, para que as alterações sejam aplicado ao buffer subjacente).
fonte
helm-swoop
é realmente uma versão melhorada dohelm-occur
.helm-swoop
... e nunca mais vou voltar! GraçasVocê pode usar
helm-occur
para ver todas as linhas que contêm correspondências para o seu padrão de pesquisa. Você pode usarC-n
eC-p
para navegar na lista e pressionarRET
para fechar o buffer do leme e pular o cursor para a linha correspondente.Eu gosto de ativar
helm-follow-mode
quando usohelm-occur
para que a janela de origem sempre mostre o contexto da correspondência atualmente selecionada. Você pode ativar o modo de acompanhamento automaticamente da seguinte maneira:fonte