我已经在Vim中配置了状态行(更精确的是gVim),这样当打开多个窗口时,活动窗口中的状态行会变为彩色,而其他窗口中的状态行将显示为灰色:
function! WinEnterStatuslineColor()
setlocal statusline=%1*[%3*%{Usid()}%1*]:%n:\ %2*%F%1*%m%r%h%w\ [%Y,%{strlen(&fenc)?&fenc:&enc},%{&fileformat}]%=%l(%L):%v[%p%%]
endfunction
function! WinLeaveStatuslineColor()
setlocal statusline=%4*[%6*%{Usid()}%4*]:%n:\ %5*%F%4*%m%r%h%w\ [%Y,%{strlen(&fenc)?&fenc:&enc},%{&fileformat}]%=%l(%L):%v[%p%%]
endfunction
au WinEnter * call WinEnterStatuslineColor()
au WinLeave * call WinLeaveStatuslineColor()
fun! Usid()
let usname=system('echo $(whoami)')
let pair = split(usname)
return pair[0]
endf
hi User1 ctermbg=green ctermfg=red guifg=white guibg=green
hi User2 ctermbg=red ctermfg=blue guifg=yellow guibg=green gui=bold
hi User3 ctermbg=blue ctermfg=green guifg=#80ccff guibg=green gui=bold
hi User4 gui=NONE ctermbg=green ctermfg=red guifg=#808080 guibg=#bcbcbc
hi User5 gui=NONE ctermbg=red ctermfg=blue guifg=#808080 guibg=#bcbcbc
hi User6 gui=NONE ctermbg=blue ctermfg=green guifg=#808080 guibg=#bcbcbc
然而,我无法实现一个小小的调整:在非活动状态行中,所有字母都以粗体字体呈现,我希望非活动状态行以常规非粗体字体呈现。有没有办法做到这一点? (我在Arch Linux上,如果这很重要的话。)
答案 0 :(得分:2)
这很可能与您的statuslineNC
hi组有关。
确保该群组中有cterm=NONE gui=NONE
。您可以查看当前值:hi statuslineNC
清理它:hi clear statuslinenc
覆盖hi! statuslineNC foo=bar ...
我也在使用Archlinux,没关系。