vim - powerline fonts mac
vim-atenuar los paneles divididos inactivos (4)
Cambiar el color de fondo como lo describe requeriría diferentes colores para diferentes ventanas Vim. Por lo que sé, esto no es posible, ya que es un entorno global (consulte esta respuesta de hace unos días).
Como ayuda visual para qué ventana está activa, encuentro que la línea de estado es usualmente suficiente. Los grupos destacados son diferentes para la ventana activa ( hi StatusLine
) y para cualquier ventana inactiva ( hi StatusLineNC
). Puede elegir un esquema de color con un contraste muy marcado entre ellos, o editar su esquema de color favorito.
Si está familiarizado con la aplicación iTerm2, sabrá que puede dividir vistas similares a vim, y las vistas inactivas están "atenuadas".
Normalmente trabajo con tres vistas verticales divididas y sería bueno atenuar las inactivas estableciendo el color de fondo en un tono más oscuro, por ejemplo.
¿Hay alguna forma de hacer esto?
En neovim (v0.2.1), la siguiente configuración atenuará los paneles inactivos:
hi ActiveWindow ctermbg=16 | hi InactiveWindow ctermbg=233
set winhighlight=Normal:ActiveWindow,NormalNC:InactiveWindow
He encontrado la siguiente solución (usando ''colorcolumn'' y desarmando ''cursorline''):
" Dim inactive windows using ''colorcolumn'' setting
" This tends to slow down redrawing, but is very useful.
" Based on https://groups.google.com/d/msg/vim_use/IJU-Vk-QLJE/xz4hjPjCRBUJ
" XXX: this will only work with lines containing text (i.e. not ''~'')
function! s:DimInactiveWindows()
for i in range(1, tabpagewinnr(tabpagenr(), ''$''))
let l:range = ""
if i != winnr()
if &wrap
" HACK: when wrapping lines is enabled, we use the maximum number
" of columns getting highlighted. This might get calculated by
" looking for the longest visible line and using a multiple of
" winwidth().
let l:width=256 " max
else
let l:width=winwidth(i)
endif
let l:range = join(range(1, l:width), '','')
endif
call setwinvar(i, ''&colorcolumn'', l:range)
endfor
endfunction
augroup DimInactiveWindows
au!
au WinEnter * call s:DimInactiveWindows()
au WinEnter * set cursorline
au WinLeave * set nocursorline
augroup END
Véalo en mis archivos de puntos (actuales): https://github.com/blueyed/dotfiles/blob/master/vimrc#L351
Actualización He creado un complemento fuera de él: https://github.com/blueyed/vim-diminactive
Tirando esto por ahí como una nueva respuesta. https://github.com/TaDaa/vimade desvanece los buffers inactivos y conserva el resaltado de sintaxis. Soy el autor, pero creo que esto podría ser útil para algunos como una alternativa más nueva. Solo se admite gui vim8 + y debería funcionar en la mayoría de los guis nvim. Vimade no admite actualmente el terminal, pero puede agregar soporte para eso más adelante.