Das aktive Fenster in vim deutlicher machen

Das aktive Fenster in vim deutlicher machen

Mein Arbeitsbereich ist normalerweise ein sehr großes xterm mit vim, aufgeteilt in sechs oder mehr Puffer. Es wäre wirklich hilfreich, wenn es offensichtlicher wäre, welcher der aktive Puffer ist. Im Moment nutze ich dafür die Anwesenheit von Zeilennummern:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set number
    autocmd WinLeave * set nonumber
augroup END

aber das bedeutet, dass mein Code nach links oder rechts springt, wenn ich die Puffer ändere, was ärgerlich ist. Außerdem möchte ich sehen können, welche Zeile 94 ist, selbst in eineminaktivPuffer. Gibt es also eine Möglichkeit, die Farben der Zeilennummern im aktiven Puffer zu ändern?

Antwort1

Gemäß Ihrer Vorlage können Sie verschiedene Eigenschaften variieren, beispielsweise die Farbspalte:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set colorcolumn=80
    autocmd WinLeave * set colorcolumn=0
augroup END

Dadurch wird Spalte 80 in Ihrem aktuellen Fenster eingefärbt, während sie in den anderen deaktiviert wird. Das ist etwas weniger störend als das Festlegen/Aufheben der Zeilennummern.

Wenn Sie es gewohnt sind, die aktuelle Zeile hervorzuheben (set cul), können Sie Folgendes tun:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set cul
    autocmd WinLeave * set nocul
augroup END

Es hängt alles von Ihrem Nutzungsverhalten ab und davon, was Sie bereit sind in Kauf zu nehmen.

Antwort2

Die Farbe der Statuszeile ist die üblichste Methode, um zu erkennen, welches Fenster aktiv ist. Sie wird in Ihrem Farbschema mit diesen beiden Zeilen definiert:

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

Das erste ist für das aktuelle Fenster, das zweite ist für das „nicht aktuelle“ Fenster.

Dies ist ein Auszug ausxoria256, sollten Sie die Farben an Ihr Farbschema anpassen.

Aber du könntest es so versuchen (Vorsicht, die Farben in der zweiten Zeile sind völlig zufällig):

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

Antwort3

Siehe auch mein Plugin, das inaktive Fenster abdunkelt:https://github.com/blueyed/vim-diminactive

Antwort4

Sie können dies zu Ihrem hinzufügen ~/.vimrc, wodurch die Statusleisten der inaktiven Fenster einen dunkelgrauen Hintergrund erhalten, um sie von der weißen Statusleiste des aktiven Fensters zu unterscheiden.

highlight StatusLineNC cterm=bold ctermfg=white ctermbg=darkgray

Sehen Sie sich dieses Screenshot-Beispiel an. Das mittlere Fenster ist aktiv (weiße Statusleiste). Das linke und rechte Fenster sind inaktiv (dunkelgraue Statusleiste).

Bildbeschreibung hier eingeben

verwandte Informationen