在Vim中配置状态行(gVim)

时间:2014-08-13 08:36:57

标签: vim

我已经在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上,如果这很重要的话。)

1 个答案:

答案 0 :(得分:2)

这很可能与您的statuslineNC hi组有关。

确保该群组中有cterm=NONE gui=NONE。您可以查看当前值:hi statuslineNC

清理它:hi clear statuslinenc

覆盖hi! statuslineNC foo=bar ...

我也在使用Archlinux,没关系。