I found this snippet to change the status line color when i go to insert mode:
" first, enable status line always
set laststatus=2
" now set it up to change the status line based on mode
if version >= 700
au InsertEnter * hi StatusLine term=reverse ctermbg=5 gui=undercurl guisp=Magenta
au InsertLeave * hi StatusLine term=reverse ctermfg=0 ctermbg=2 gui=bold,reverse
endif
Now, when i go to insert mode the status line go to violet color, but I want to change it to go to red color. I changed Magenta by Red, but it doesn't work..
If you use :help
, you can find out what each of those attributes mean.
guisp
is used for the "special" color of the highlight. In this case, it's the color of the undercurl effect. It sounds like you want to change the actual highlight color, so try this:
au InsertEnter * hi StatusLine term=reverse ctermbg=5 gui=undercurl guisp=Magenta guibg=Red
And in fact, if you just use a GUI Vim, you don't need any of the terminal options:
au InsertEnter * hi StatusLine guibg=Red
au InsertLeave * hi StatusLine guibg=#ccdc90
For InsertLeave
, I just used the my normal StatusLine
color as an example. You should be able to find it in your colorscheme file.
Incidentally, guibg
actually affects the text color, while guifg
affect the line color...