VIM: pesquisa em várias janelas divididas

11

Eu quero pesquisar no VIM em várias janelas divididas

Etapas:

  1. Realce a palavra sob o cursor com '*' em uma janela dividida
  2. Pressione 'n' para ir para a próxima ocorrência em todas as janelas divididas sem alterar janelas via Ctrl-w-w

Isso é possível?

    
por JAVH 27.01.2012 в 12:38
fonte

2 respostas

6
nnoremap <silent> n :exe (search(@/, 'nW') == 0 ? "normal \<lt>c-w>\<lt>c-w>ggn" : "normal! n")<cr>
nnoremap <silent> N :exe (search(@/, 'bnW') == 0 ? "normal \<lt>c-w>\<lt>c-w>G$N" : "normal! N")<cr>

Isso responde a pergunta, mas não sinto que esteja no espírito do vim. Eu prefiro a sensação de usar a janela de quickfix.

Depois de usar * , execute o seguinte:

:cexpr []|exe "windo vimgrepadd//j %"|copen

Agora você pode usar :cn e :cp para percorrer as pesquisas. Eu pessoalmente uso o unimpaired.vim de Tim Pope, que fornece bons mapeamentos na forma de [q e ]q .

Veja

:h search(
:h quickfix
:h cexpr
:h windo
:h vimgrepadd
:h copen
:h cn
    
por Peter Rincker 27.01.2012 / 23:51
fonte
0

Você pode criar uma macro para ela, como: q q * CTRL w CTRL w n CTRL w CTRL w q .

Agora você pode clicar em @ q para fazer a busca. E você pode configurar um map para ele:

:nmap YOUR_FAVOURITE_KEY @q
    
por Zsolt Botykai 27.01.2012 / 13:35
fonte