我正在編輯我的.vimrc
來改變vim的狀態行顏色。如何更改vim狀態線的顏色?
通過使用命令au
,我試圖在進入或離開插入模式時更改狀態行的顏色;通過使用該命令沒有反應:
hi StatusLine guibg=whatevercolourIwant
通過直接改變狀態行的顏色,沒有任何au
命令,背景仍然是相同的。
有沒有理由通過執行
:hi StatusLine guibg=red
,
例如,狀態欄的背景仍然是綠色的?
我正在編輯我的.vimrc
來改變vim的狀態行顏色。如何更改vim狀態線的顏色?
通過使用命令au
,我試圖在進入或離開插入模式時更改狀態行的顏色;通過使用該命令沒有反應:
hi StatusLine guibg=whatevercolourIwant
通過直接改變狀態行的顏色,沒有任何au
命令,背景仍然是相同的。
有沒有理由通過執行
:hi StatusLine guibg=red
,
例如,狀態欄的背景仍然是綠色的?
,如果你正在運行在終端vim的,請嘗試:
hi StatusLine ctermbg=whatever ctermfg=whatever
guibg guifg是GUI。
希望它有幫助。
我用這對我的狀態行,這會改變線的顏色取決於我什麼模式,除其他花絮:
function! InsertStatuslineColor(mode)
if a:mode == 'i'
hi statusline guibg=Cyan ctermfg=6 guifg=Black ctermbg=0
elseif a:mode == 'r'
hi statusline guibg=Purple ctermfg=5 guifg=Black ctermbg=0
else
hi statusline guibg=DarkRed ctermfg=1 guifg=Black ctermbg=0
endif
endfunction
au InsertEnter * call InsertStatuslineColor(v:insertmode)
au InsertLeave * hi statusline guibg=DarkGrey ctermfg=8 guifg=White ctermbg=15
" default the statusline to green when entering Vim
hi statusline guibg=DarkGrey ctermfg=8 guifg=White ctermbg=15
" Formats the statusline
set statusline=%f " file name
set statusline+=[%{strlen(&fenc)?&fenc:'none'}, "file encoding
set statusline+=%{&ff}] "file format
set statusline+=%y "filetype
set statusline+=%h "help file flag
set statusline+=%m "modified flag
set statusline+=%r "read only flag
" Puts in the current git status
if count(g:pathogen_disabled, 'Fugitive') < 1
set statusline+=%{fugitive#statusline()}
endif
" Puts in syntastic warnings
if count(g:pathogen_disabled, 'Syntastic') < 1
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
endif
set statusline+=\ %= " align left
set statusline+=Line:%l/%L[%p%%] " line X of Y [percent of file]
set statusline+=\ Col:%c " current column
set statusline+=\ Buf:%n " Buffer number
set statusline+=\ [%b][0x%B]\ " ASCII and byte code under cursor
這確實是一個代碼真棒位!
我已經修改它以適應我的需要。我在緩衝狀態中添加了一些措辭:
[保存]或[修改]。
我根據緩衝區更改事件設置了我的狀態欄顏色。 DarkSlateGray保持不變/正常。 OrangeRed4如果有任何修改完成。
這是我修改後的代碼:
" Some funky status bar code its seems
" https://stackoverflow.com/questions/9065941/how-can-i-change-vim-status-line-colour
set laststatus=2 " set the bottom status bar
function! ModifiedColor()
if &mod == 1
hi statusline guibg=White ctermfg=8 guifg=OrangeRed4 ctermbg=15
else
hi statusline guibg=White ctermfg=8 guifg=DarkSlateGray ctermbg=15
endif
endfunction
au InsertLeave,InsertEnter,BufWritePost * call ModifiedColor()
" default the statusline when entering Vim
hi statusline guibg=White ctermfg=8 guifg=DarkSlateGray ctermbg=15
" Formats the statusline
set statusline=%f " file name
set statusline+=[%{strlen(&fenc)?&fenc:'none'}, "file encoding
set statusline+=%{&ff}] "file format
set statusline+=%y "filetype
set statusline+=%h "help file flag
set statusline+=[%{getbufvar(bufnr('%'),'&mod')?'modified':'saved'}]
"modified flag
set statusline+=%r "read only flag
set statusline+=\ %= " align left
set statusline+=Line:%l/%L[%p%%] " line X of Y [percent of file]
set statusline+=\ Col:%c " current column
set statusline+=\ Buf:%n " Buffer number
set statusline+=\ [%b][0x%B]\ " ASCII and byte code under cursor
這是驚人的,謝謝 – tux91 2013-01-16 03:20:35
所以要使用vim的這個配置它在.vimrc文件被粘貼? – Cristian 2016-04-12 18:01:00
是一個類似的信息在http://vim.wikia.com/wiki/Change_statusline_color_to_show_insert_or_normal_mode – 2017-01-22 18:26:06