我是Vim的新手,我想根据缓冲区是否被修改来设置我的状态线的一部分的颜色。我的.vimrc
中有以下内容:
set statusline=%{&modified=='nomodified'?'%#User1#':'%#User2#'}
" restore normal highlight
set statusline+= %*
在我的配色方案中,我有以下内容:
hi User1 gui=NONE guifg=#000000 guibg=#FFFFFF
hi User2 gui=NONE guifg=#000000 guibg=#FF0000
这只会在我的状态行中添加消息%#User1#和%#User2#,具体取决于当前缓冲区是否已修改;它不会改变雕像的颜色。
有没有办法用一个简单的if/else语句来改变雕像的颜色,就像我上面描述的那样?
根据我的要点:
highlight IsModified ctermbg=red
highlight IsNotModified ctermbg=green
set statusline+=%#IsModified#%{&mod?'[THIS BUFFER IS MODIFIED!!!]':''}%*
set statusline+=%#IsNotModified#%{&mod?'':'[THIS BUFFER IS PRISTINE!!!]'}%*