My vimr c устанавливает номер буфера в строке состояния с другим цветным фоном на основе того, является ли он доступным только для чтения или изменен.
Я также хотел бы установить другой цвет, если буфер не находится в активное окно (полезно в режиме разделенного окна).
Я использую &mod
и &readonly
для обнаружения измененных или только для чтения. Как я могу проверить, находится ли буфер в активном окне? (то есть, возможно, измените его на серый, если окно неактивно).
Вот код, который я использую для чтения и измененный:
function! StatusLineHeader()
return ' '.bufnr('%').' '
endfunction
set statusline=
set statusline+=%#UWhiteOnBlue#%{&mod?'':&readonly?'':StatusLineHeader()} "default header
set statusline+=%#UWhiteOnOrange#%{&mod?'':&readonly?StatusLineHeader():''} "readonly header
set statusline+=%#UWhiteOnGreen#%{&mod?StatusLineHeader():''} "modified header