Hacer que la ventana activa en vim sea más obvia

Hacer que la ventana activa en vim sea más obvia

Mi espacio de trabajo es normalmente un xterm muy grande con vim, dividido en seis o más buffers. Sería realmente útil si fuera más obvio cuál es el búfer activo. Ahora estoy usando la presencia de números de línea para esto:

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

pero esto significa que cuando cambio los buffers mi código salta hacia la izquierda o hacia la derecha, lo cual es molesto. Además, me gustaría poder ver cuál es la línea 94 incluso en uninactivobuffer. Entonces, ¿hay alguna forma de cambiar los colores de los números de línea en el búfer activo?

Respuesta1

Siguiendo tu plantilla, puedes variar diferentes propiedades, como colorcolumn:

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

Esto coloreará la columna 80 en su ventana actual, mientras la deshabilitará en las demás. Es un poco menos discordante que configurar/desconfigurar números de línea.

Una opción aún menos intrusiva, si está acostumbrado a resaltar la línea actual (set cul), es hacer:

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

Todo se reduce a tu uso y a lo que estás dispuesto a soportar.

Respuesta2

El color de la línea de estado es la forma más habitual de saber qué ventana está activa. Está definido en tu esquema de colores con estas dos líneas:

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

El primero es para la ventana actual, el segundo es para la ventana "no actual".

Este es un extracto dexoria256, debes adaptar los colores a tu esquema de colores.

Pero podrías intentar algo así (cuidado, los colores de la segunda línea son completamente aleatorios):

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

Respuesta3

Vea también mi complemento que atenúa las ventanas inactivas:https://github.com/blueyed/vim-diminactive

Respuesta4

Puede agregar esto a su archivo ~/.vimrc, lo que hará que las barras de estado de las ventanas inactivas tengan un fondo gris oscuro para diferenciarlas de la barra de estado blanca de la ventana activa.

highlight StatusLineNC cterm=bold ctermfg=white ctermbg=darkgray

Vea este ejemplo de captura de pantalla. La ventana del medio está activa (barra de estado blanca). Las ventanas izquierda y derecha están inactivas (barra de estado gris oscuro).

ingrese la descripción de la imagen aquí

información relacionada