Como definir a cor de fundo somente para a janela ativa do Vim?

13

Um recurso pequeno, mas visualmente agradável, e adicionando um pouco à usabilidade, eu gostaria que o Vim usasse cores de plano de fundo diferentes para a janela ativa.

Aqui está um esboço do que eu sou depois:

Normalmente, o vim teria todo o fundo em preto, mas se apenas a janela ativa tivesse sua própria cor para destacar a atenção do usuário. Destacar apenas a barra de status não é suficiente!

    
por progo 08.10.2010 / 11:01

2 respostas

6

Heptite, obrigada pela ideia.

Acabei de substituir o autocmd do WinEnter e do WinLeave para adicionar / remover números de linha na frente de cada linha:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set number
    autocmd WinLeave * set nonumber
augroup END

Agora é mais estiloso rastrear qual janela está ativa.

    
por 03.02.2011 / 09:35
3

Os grupos de destaque que controlam a cor de fundo padrão são " Normal " e " NonText ". Infelizmente, estes são destaques "globais" e não podem ser "localizados" por janela.

No entanto, aqui está um exemplo muito feio:

augroup BgHighlight
    autocmd!
    highlight ActiveWindow guibg=lightblue
    autocmd WinEnter * call matchadd('ActiveWindow', '.*', 10, 1682)
    autocmd WinLeave * call matchdelete(1682)
augroup END

doautocmd BgHighlight WinEnter -

Como este é apenas um exemplo, você terá que modificar isso para atender às suas necessidades individuais, como adicionar um ctermbg = ... highlight junto com o guibg = ...

A desvantagem é que isso só destacará o plano de fundo do texto existente nos arquivos, não a linha / janela inteira. (Como eu disse, feia e kludgy.)

    
por 08.10.2010 / 22:41

Tags