Tornando a janela ativa no vim mais óbvia

Tornando a janela ativa no vim mais óbvia

Meu espaço de trabalho normalmente é um xterm muito grande com o vim, dividido em seis ou mais buffers. Seria muito útil se fosse mais óbvio qual deles era o buffer ativo. No momento estou usando a presença de números de linha para isso:

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

mas isso significa que quando altero os buffers, meu código salta para a esquerda ou para a direita, o que é irritante. Além disso, gostaria de poder ver qual é a linha 94, mesmo em uminativoamortecedor. Então, existe alguma maneira de alterar as cores dos números das linhas no buffer ativo?

Responder1

Seguindo seu modelo, você pode variar diferentes propriedades, como colorcolumn:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set colorcolumn=80
    autocmd WinLeave * set colorcolumn=0
augroup END

Isso colorirá a coluna 80 da sua janela atual, enquanto a desabilitará nas outras. É um pouco menos chocante do que definir/desativar números de linha.

Uma opção ainda menos intrusiva, se você está acostumado a destacar a linha atual (set cul), é fazer:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set cul
    autocmd WinLeave * set nocul
augroup END

Tudo se resume ao seu uso e ao que você está disposto a suportar.

Responder2

A cor da linha de status é a forma mais comum de saber qual janela está ativa. É definido no seu esquema de cores com estas duas linhas:

hi StatusLine   ctermfg=15  guifg=#ffffff ctermbg=239 guibg=#4e4e4e cterm=bold gui=bold
hi StatusLineNC ctermfg=249 guifg=#b2b2b2 ctermbg=237 guibg=#3a3a3a cterm=none gui=none

A primeira é para a janela atual, a segunda é para a janela “não atual”.

Este é um trecho dexoria256, você deve adaptar as cores ao seu esquema de cores.

Mas você poderia tentar algo assim (cuidado, as cores na segunda linha são completamente aleatórias):

augroup NrHighlight
  autocmd!
  autocmd WinEnter * hi LineNr ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212
  autocmd WinLeave * hi LineNr ctermfg=274 guifg=#e9e9e9 ctermbg=133 guibg=#212121
augroup END

Responder3

Veja também meu plugin que escurece janelas inativas:https://github.com/blueyed/vim-diminactive

Responder4

Você pode adicionar isso ao seu ~/.vimrc, o que fará com que as barras de status das janelas inativas tenham um fundo cinza escuro para diferenciar da barra de status branca da janela ativa.

highlight StatusLineNC cterm=bold ctermfg=white ctermbg=darkgray

Veja este exemplo de captura de tela. A janela do meio está ativa (barra de status branca). As janelas esquerda e direita estão inativas (barra de status cinza escuro).

insira a descrição da imagem aqui

informação relacionada