Automatically change interface colors for normal(visual) vs input mode

2017-04-07 02:39:43

I have found a related question here:

Automatically set the 'number' option in Vim when entering Ex mode, set 'nonumber' in visual mode

Still I am not sure that I can follow those explanations to achieve what I want.

So here is what I want to achieve:

For normal (and visual) mode, I've set up a color bar, for example here

I [ab]use the foldcolumn to indicate that I am in visual mode (see on the left a blue vertical bar):

Now if I go into insert mode I want it to change the color (now the bar is gray as if it is gone):

I want this to set up a strong visual feedback which helps

to always see in which mode I am currently.

Sometimes I start to input text when I am in normal or visual

mode and this results in running a lot of Vim's commands.

So how can I make that the color changes automatically in run-time when switching from insert to normal mode and back?

Here I use is foldcolumn, but it can be something else with similar effect to this.

VIM 7.4, Windo

  • Use the InsertEnter and InsertLeave autocmd events. For example, say I [ab]used the cursorline setting instead of the foldcolumn:

    autocmd InsertEnter * set cursorline

    autocmd InsertLeave * set nocursorline

    So whatever it is you do to change the colour of the foldcolumn (hi FoldColumn ctermbg=blue?), put those as the commands after the autocmd InsertEnter * and autocmd InsertLeave *.

    This is easier for the insert mode than other modes, since there are autocmd events for entering and leaving insert mode, but not for normal, visual, etc.

    2017-04-07 04:53:49