如何更改vim状态行的颜色?

如何更改vim状态行的颜色?,vim,background-color,statusbar,Vim,Background Color,Statusbar,我试图通过编辑我的.vimrc来更改vim的状态行颜色 通过使用命令au,我试图在进入或离开插入模式时更改状态行的颜色;使用此命令不会发生任何情况: hi StatusLine guibg=whatevercoloriwant 通过直接更改状态行颜色,无需任何au命令,背景保持不变 有没有执行的理由 :hi状态行guibg=red 例如,状态栏的背景仍为绿色?如果您正在终端中运行vim,请尝试: hi StatusLine ctermbg=whatever ctermfg=whatever g

我试图通过编辑我的
.vimrc
来更改vim的状态行颜色

通过使用命令
au
,我试图在进入或离开插入模式时更改状态行的颜色;使用此命令不会发生任何情况:

hi StatusLine guibg=whatevercoloriwant

通过直接更改状态行颜色,无需任何
au
命令,背景保持不变

有没有执行的理由

:hi状态行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
函数!InsertStatuslineColor(模式)
如果a:mode=='i'
hi状态行guibg=青色字符mfg=6 guifg=黑色字符mbg=0
elseif a:mode=='r'
hi状态行guibg=紫色字符mfg=5 guifg=黑色字符mbg=0
其他的
hi状态行guibg=DarkRed ctermfg=1 guifg=Black ctermbg=0
恩迪夫
端功能
au InsertCenter*调用InsertStatuslineColor(v:insertmode)
au INSERTLEVE*高状态行guibg=DarkGrey-ctermfg=8 guifg=White-ctermbg=15
“进入Vim时,默认状态行为绿色
hi状态行guibg=DarkGrey-ctermfg=8 guifg=White-ctermbg=15
“设置状态行的格式
设置状态行=%f“文件名
设置statusline+=[%{strlen(&fenc)?&fenc:'none'},“文件编码
设置statusline+=%{&ff}]“文件格式
设置statusline+=%y“文件类型
设置statusline+=%h“帮助文件标志
设置statusline+=%m“已修改标志
设置statusline+=%r“只读标志
“放入当前git状态
如果计数(g:U禁用,“逃犯”)<1
设置statusline+=%{逃犯#statusline()}
恩迪夫
“放入语法警告
如果计数(g:U禁用,'Syntastic')<1
设置statusline+=%#warningmsg#
设置statusline+=%{SyntasticStatuslineFlag()}
设置状态行+=%*
恩迪夫
设置statusline+=\%=“左对齐”
设置statusline+=行:%l/%l[%p%%]”Y的X行[文件的百分比]
设置statusline+=\Col:%c“当前列
设置statusline+=\Buf:%n“缓冲区编号
在光标下设置statusline+=\[%b][0x%b]\”ASCII和字节码

这确实是一段很棒的代码

我已经修改了它以适应我的需要。我在缓冲区状态中添加了一些措辞:

[保存]或[修改]

我根据缓冲区更改事件设置状态栏颜色。暗灰色表示未更改/正常。如果进行了任何修改,则为橙色4

这是我修改过的代码:

" 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

因此,要在vim中使用此配置,必须将其粘贴到.vimrc文件中?是的,在将其放入时也有类似的信息,我得到
未定义的变量:g:aghogen_disabled