Realce Pesquisa (hls) correspondências de vários termos de pesquisa com cores diferentes

2

Muitas vezes, quando trabalho em código, procuro as ocorrências de variáveis com nomes semelhantes. Por exemplo, encontre todas as correspondências de var1 e var2 como:

/\<var1\>\|\<var2\>

Agora, eu realmente gosto do recurso de pesquisa de realce do Vim, b / c, uma vez que eu faço a pesquisa, todas as instâncias correspondentes aparecem na cor amarela.

Existe uma maneira de atribuir cores diferentes a termos diferentes na string de pesquisa? Ou seja, todas as correspondências de var1 serão amarelas e de var2 serão verdes?

    
por ysap 25.04.2014 / 22:36

2 respostas

2

Com a opção 'hlsearch' , não, todos eles precisam aparecer na mesma cor. No entanto, você pode usar o recurso :match . Por exemplo:

:match TODO /var1/
:2match Type /var2/
:3match Comment /var3/

Isso, é claro, é mais trabalhoso do que o 'hlsearch' correspondente, porque requer que você saiba quais grupos de coloração da sintaxe já estão definidos ou definem os seus próprios grupos de coloração. Além disso, você só pode fazer até três partidas separadas dessa maneira. Se você precisar de mais, terá que usar matchadd() .

Veja:

:help :match
:help :highlight
:help highlight-groups
:help matchadd()
    
por 25.04.2014 / 22:46
2

A pesquisa interna não pode fazer isso, mas há plugins que permitem usar cores diferentes, por exemplo, o meu próprio Mark plugin . (A página do plug-in tem links para plug-ins alternativos.) A maioria deles usa a funcionalidade matchadd() , garante que isso seja aplicado globalmente a todas as janelas e fornece uma interface de pesquisa por meio de mapeamentos e comandos.

    
por 25.04.2014 / 22:44