Vim change block cursor when in insert mode
I know this is an old question but hopefully this will help anyone else facing the same scenario.
Actually I'm using iTerm2 and using Vim inside my terminal on Mac. And when entering to insert mode, the cursor still being a block and is kind of confusing when you are at insert mode or normal mode.
I wanted to show a thin line as cursor when in insert mode and back to block when in normal mode as MacVim does. And to do so it's pretty simple, just added this to my .vimrc
file as described here:
let &t_SI = "\<Esc>]50;CursorShape=1\x7"
let &t_SR = "\<Esc>]50;CursorShape=2\x7"
let &t_EI = "\<Esc>]50;CursorShape=0\x7"
But as you can see there was a delay when hitting ESC
to exit insert mode back to normal mode and show the block as cursor again. So to fix it I found this:
set ttimeout
set ttimeoutlen=1
set listchars=tab:>-,trail:~,extends:>,precedes:<,space:.
set ttyfast
And now it works pretty fine as you can see:
I hope it could help any one else!
The gcr option does this, although I'm not sure exactly how it needs to be set to get the results you want.
:help gcr
If you read the manual and play around with it, you should be able to figure it out.
The blinking cursor in insert mode is usually the default. Maybe the gcr option got changed in your .vimrc