pesquisas separadas em janelas na VIM
Pergunta
Quando eu dividir VIM para me mostrar alguns arquivos ou um diferentes partes do mesmo arquivo, existe alguma maneira para mim ter uma pesquisa em uma janela e uma pesquisa diferente no outro? Por exemplo, eu gostaria que a janela superior para ter o foo
busca padrão ea janela menor para ter o bar
busca padrão.
O padrão de busca ativa afeta o que é realçado pelo uso da pesquisa de realce, e é muito chato quando eu tenho foo
em destaque na janela superior, e então eu mudar para a janela inferior e procurar bar
e foo
deixa de ser destaque na a janela superior.
Editar: Esta questão parece estar relacionada, embora eu não tenho certeza que é uma cópia exata.
Solução
Eu uso este script para destacar vários padrões de pesquisa.
Outras dicas
A resposta de Canopus é provavelmente a melhor maneira de fazê-lo se você estiver usando isso muitas vezes, mas se você quiser fazê-lo com um baunilha vim instalar (ou mais ao ponto, sem instalar qualquer plugins), você pode simplesmente fazer :
:call matchadd('Search', 'foo')
:call matchadd('Search', 'bar')
Você pode então apagar todos os jogos com
:call clearmatches()
Há também formas de ser mais exigente sobre o que você limpar (com :call matchdelete(...)
) salvando a saída do matchadd a uma variável. Você pode ler mais sobre isso em :help matchadd()
e :help matchdelete()
Se você não está usando muito complicado um arquivo de sintaxe (e, especificamente, não usando o destaque rainbow.vim), você provavelmente pode também fazê-lo com:
:syn keyword Search foo
:syn keyword Search bar
e limpá-la com
:syn clear Search
A única possível vantagem deste que eu posso pensar é que, se há um muito de correspondências que você está tentando destaque, um destaque keyword
é muito mais rápido do que um destaque match
( como este último usa uma pesquisa de expressão regular). Você ainda pode fazer um jogo syn keyword
se você estiver usando rainbow.vim, mas o comando é muito mais complicado.