在Vim(gVim)中配置状态行
我已经在Vim(更准确地说是gVim)中配置了状态行,以便当有多个窗口打开时,活动窗口中的状态行是彩色的,而其他窗口中的状态行是灰色的:在Vim(gVim)中配置状态行,vim,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
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。)这很可能与您的
statuslineNC
hi组有关
确保该组中有cterm=NONE gui=NONE
。您可以检查当前值:hi statuslineNC
清洁它:hi clear statuslinenc
覆盖它hi!statuslineNC foo=条形图…
我也在Archlinux上,这没关系。为什么要经历这些痛苦?您不能直接使用
hi StatusLineNC
?