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).