powerline mac vim iterm2

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.