Frage

Wenn Sie mit der iTerm2-Anwendung vertraut sind, wissen Sie, dass Sie Ansichten ähnlich wie vim teilen können und die inaktiven Ansichten "abgeblendet" sind.

Normalerweise arbeite ich in vim mit drei vertikalen geteilten Ansichten, und es wäre schön, die inaktiven Ansichten zu dimmen, indem Sie beispielsweise die Hintergrundfarbe auf einen dunkleren Ton einstellen.

Gibt es eine Möglichkeit, dies zu tun?

War es hilfreich?

Lösung

Ich habe die folgende Lösung gefunden (unter Verwendung von 'Farbspalte' und Deaktivieren von 'Cursorzeile'):

" 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

Zeigen Sie es in meinen (aktuellen) Punktedateien an: https://github.com/ blueyed / dotfiles / blob / master / vimrc # L351

Update Ich habe daraus ein Plugin erstellt: https://github.com/blueyed/vim-diminactive

Andere Tipps

In neovim (v0.2.1) werden durch die folgende Konfiguration inaktive Fenster gedimmt:

hi ActiveWindow ctermbg=16 | hi InactiveWindow ctermbg=233
set winhighlight=Normal:ActiveWindow,NormalNC:InactiveWindow

Wenn Sie die von Ihnen beschriebene Hintergrundfarbe ändern, sind für verschiedene Vim-Fenster unterschiedliche Farbschemata erforderlich.Soweit ich weiß, ist dies nicht möglich, da es sich um eine globale Einstellung handelt (siehe diese Antwort von vor einigen Tagen)..

Als visuelle Hilfe für welches Fenster aktiv ist, finde ich die Statuszeile normalerweise ausreichend.Die Hervorhebungsgruppen unterscheiden sich für das aktive Fenster (hi StatusLine) und alle inaktiven Fenster (hi StatusLineNC).Sie können entweder ein Farbschema mit einer sehr starken Einschränkung auswählen oder Ihr Lieblingsfarbschema bearbeiten.

Wirf dies als neue Antwort raus. https://github.com/TaDaa/vimade blendet inaktive Puffer aus, behält die Syntaxhervorhebung bei und kann dies auchZeichen verblassen.Ich bin der Autor, aber ich denke, dass dies für einige als neuere Alternative nützlich sein könnte.Unterstützt nvim und vim8, 256 Farbterminals, Termguicolors und GUI.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top