Comecei a aprender a pesquisa de palavras no Vim usando *
e #
enquanto o cursor estiver sobre a palavra atual. Mas essa pesquisa é limitada ao buffer de arquivo atual.
Existe um comando ou um atalho para estender esta pesquisa para:
- todas as guias abertas?
- todos os buffers abertos?
Respostas:
Não tenho uma solução exata para o seu problema, espero que uma resposta melhor que a minha seja apresentada. Mas foi assim que lidei com o problema de encontrar uma palavra em todos os buffers.
A primeira linha cria um comando
Search
com o padrão de pesquisa como argumento, que grava os resultados em uma lista de correções rápidas. As duas outras linhas mapeiam as (pelo menos para mim) teclas de seta inúteis para algo útil; eles são mapeados para ir para a próxima / anterior pesquisa ou para o próximo / anterior erro de compilação, etc., eles simplesmente avançam na lista de correções rápidas. Você pode usar isso da seguinte maneira:fonte
:cn
ou:cp
alternar para o próximo documento.Na verdade, é o comportamento padrão, embora possa ser difícil perceber: tente
*
mudar para outra guia e usen
ansN
no modo de comando para avançar e retroceder entre os hits da pesquisa.Isso pode fazer mais sentido se primeiro você ativar o destaque para todos os hits:
fonte
hlsearch
isso eu não sabia e que eu teria pesquisado um dia ou outro :-). No entanto, por padrão Eu tentei * #, n e N, e não saltar para outros buffers de arquivo ...n
eN
não salte os buffers (eles se abrem), mas o termo que eles segmentam é pesquisado em todas as guias; clique*
com o destaque em e percorra as guias - todas serão destacadas com o mesmo termo, para que você possa usán
-loN
localmente sem uma nova pesquisa.hlsearch
definido.fonte
Como me encontrei fazendo isso com frequência, misturei um script (improvável).
Você ou outra pessoa pode achar útil.
Breve explicação:
Basicamente, ele pesquisa a lista de buffers e mostra o resultado na janela de correção rápida.
Dois comandos básicos são adicionados.
Search <pattern>
: Pesquise todos os buffers<pattern>
.Search1 <pattern>
: Pesquise todos os buffers<pattern>
, mas mostre apenas o primeiro resultado para cada buffer. Normalmente útil para listar todos os buffers em que a função, variávelfoo
é usada (ou o que for).Use bang (
:Search! foo
) para acrescentar aos resultados.Além disso
GSearch
eGSearch1
é adicionado onde a diferença é que, comSearch
o delimitador regex roteiro add, por exemplo:Onde, como
GSearch
espera, seja fechado.A
j
bandeira é sempre adicionada para impedir o salto.Código:
Existem alguns hacks para impedir a listagem de erros e, ao mesmo tempo, manter o código curto.
try / catch
era um pouco complicadobufdo
.fonte