Мое рабочее пространство обычно представляет собой один очень большой xterm с vim, разделенный на шесть или более буферов. Было бы очень полезно, если бы было более очевидно, какой из буферов является активным. Сейчас я использую наличие номеров строк для этого:
augroup BgHighlight
autocmd!
autocmd WinEnter * set number
autocmd WinLeave * set nonumber
augroup END
но это означает, что когда я меняю буферы, мой код прыгает влево или вправо, что раздражает. Плюс, я хотел бы иметь возможность видеть, какая строка 94, даже внеактивныйбуфер. Так есть ли способ изменить цвета номеров строк в активном буфере?
решение1
Следуя вашему шаблону, вы можете изменять различные свойства, такие как colorcolumn:
augroup BgHighlight
autocmd!
autocmd WinEnter * set colorcolumn=80
autocmd WinLeave * set colorcolumn=0
augroup END
Это окрасит столбец 80 в текущем окне, отключив его в других. Это немного менее раздражающе, чем установка/снятие номеров строк.
Еще менее навязчивый вариант, если вы привыкли подсвечивать текущую строку (set cul), это сделать:
augroup BgHighlight
autocmd!
autocmd WinEnter * set cul
autocmd WinLeave * set nocul
augroup END
Все зависит от того, как вы используете устройство и с чем вы готовы мириться.
решение2
Цвет строки состояния — наиболее распространенный способ узнать, какое окно активно. Он определяется в вашей цветовой схеме этими двумя строками:
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
Первый — для текущего окна, второй — для «не текущего» окна.
Это отрывок изxoria256, вам следует адаптировать цвета к вашей цветовой схеме.
Но вы можете попробовать что-то вроде этого (будьте осторожны, цвета во второй строке совершенно случайны):
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
решение3
См. также мой плагин, который затемняет неактивные окна:https://github.com/blueyed/vim-diminactive
решение4
Вы можете добавить это в свой файл ~/.vimrc
, и тогда строки состояния неактивных окон будут иметь темно-серый фон, чтобы отличаться от белой строки состояния активного окна.
highlight StatusLineNC cterm=bold ctermfg=white ctermbg=darkgray
Смотрите этот пример снимка экрана. Среднее окно активно (белая строка состояния). Левое и правое окна неактивны (темно-серая строка состояния).