我的 vimrc 根据它是只读的还是修改的,将状态行中的缓冲区编号设置为不同的颜色背景。
如果缓冲区不在活动窗口中,我还想设置不同的颜色(在拆分窗口模式下很有用)。
我正在使用&mod
and&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