que han llegado con la siguiente solución (usando 'colorcolumn' y 'cursorline' desarmado):
" 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
verla en mis comienzan con un punto (actuales): https://github.com/blueyed/dotfiles/blob/master/vimrc#L351
actualización I ha creado un complemento de este: https://github.com/blueyed/vim-diminactive
¡increíble! muy agradable. –
Esto podría hacerse más eficiente para cualquier máquina que tenga problemas. Realmente no necesitamos ejecutar todas las ventanas cada vez que cambiamos de ventana. Solo tenemos que realizar el 'setwinvar' en cualquier ventana que WinLeave, y' setlocal nocolorcolumn' en WinEnter. (Eso supone que nuestra sesión comienza con solo una ventana, y nunca creamos varias ventanas sin ingresar cada una de ellas.) – joeytwiddle
Elimina la mierda au WinEnter * para que se respeten las configuraciones originales de la línea de cursor del usuario –