Configurando várias regras de destaque no vim

16

Estou tentando configurar regras para realçar espaços em branco à direita e linhas com mais de um tamanho, adicionando isso ao meu .vimrc:

highlight ExtraWhitespace ctermbg=lightgray guibg=lightgray
match ExtraWhitespace /\s\+$/

highlight OverLength ctermbg=lightgray guibg=lightgray
match OverLength /\%>80v.\+/

No entanto, parece apenas pegar o que for o último. Eu não consigo encontrar uma maneira de fazê-los trabalharem simultaneamente.

    
por ICR 17.11.2010 / 17:03

3 respostas

9

Um caminho:

highlight EWOL ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
match EWOL /\%>20v.\+\|\s\+$/

Outro:

highlight ExtraWhitespace ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
match ExtraWhitespace /\s\+$/

highlight OverLength ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
2match OverLength /\%>80v.\+/

Também disponível: 3match . Até três correspondências podem estar ativas por vez. Ou você pode usar matchadd() para criar correspondências sem limite para a quantidade.

Observação: 3match é usado por matchparen, então vai entrar em conflito se você usá-lo.

    
por 17.11.2010 / 18:39
6

Use matchadd() , então adicione isso ao seu .vimrc :

highlight ExtraWhitespace ctermbg=grey guibg=grey
call matchadd('ExtraWhitespace', '\s\+$', 11)

highlight OverLength ctermbg=lightgrey guibg=lightgrey
call matchadd('OverLength', '\%>80v.\+')

Para ver todas as correspondências:

:echo getmatches()

Para remover correspondências, use matchdelete() .

    
por 15.12.2012 / 04:39
1

Que tal usar isso

:sy[ntax] match {group-name} [{options}] [excludenl] {pattern} [{options}]

:highlight ExtraWhitespace ctermbg=lightgray guibg=lightgray
:syntax match ExtraWhitespace /\s\+$/
:highlight OverLength ctermbg=lightgray guibg=lightgray
:syntax match OverLength /\%>80v.\+/

Você pode combinar muitos números de padrões usando isso ...

    
por 16.02.2016 / 11:12