Tornando a janela ativa no vim mais óbvia

18

Meu espaço de trabalho é normalmente um xterm muito grande com o vim, dividido em seis ou mais buffers. Seria realmente ú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 eu 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 um buffer inativo . Então, existe alguma maneira de mudar as cores dos números de linha no buffer ativo?

    
por DrHyde 03.02.2012 / 13:12

6 respostas

18

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

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

Isto irá colorir a coluna 80 em sua janela atual, enquanto a desativa nos outros. É um pouco menos chocante do que configurar / desfeitar 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 tolerar.

    
por 25.02.2012 / 16:30
6

A cor da linha de status é a maneira mais comum de saber qual janela está ativa. Está 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

O primeiro é para a janela atual, o segundo é para a janela "não atual".

Este é um trecho de xoria256 , 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
    
por 03.02.2012 / 14:35
5

Veja também o meu plugin que escurece as janelas inativas: link

    
por 04.09.2014 / 05:07
1

Isso é o que eu faço:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set relativenumber
    autocmd WinLeave * set norelativenumber
augroup END

Os números relativos são apenas uma ajuda para calcular a quantidade repetida de comandos, não há utilidade para eles em uma janela que você não esteja editando.

    
por 21.05.2017 / 14:58
1

Eu gosto de esconder a linha do cursor para janelas inativas

augroup CursorLineOnlyInActiveWindow
  autocmd!
  autocmd VimEnter,WinEnter,BufWinEnter * setlocal cursorline
  autocmd WinLeave * setlocal nocursorline
augroup END  

(graças a link )

    
por 27.04.2018 / 14:08
0

Você pode adicionar isso ao seu ~/.vimrc , o que fará com que as barras de status das janelas inativas tenham um plano de 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).

    
por 26.04.2018 / 11:31

Tags