Ubuntu – How to make cursor change from thin line to block based on normal or insert mode in Console Vim on Gnome Terminal


I am switching from Gvim to using Console Vim using the Gnome Terminal 2.32.1.

I really liked in Gvim how the cursor would be a solid square when in normal mode and thin line when in insert mode.

  • Is there a way of producing this functionality when running console Vim in the Gnome terminal?

  • If it's not possible, what tricks are there for knowing what mode you are in? I know there is the mode displayed at the bottom of the screen, but that doesn't seem to be as helpful as the cursor (which is where my eyes are looking). Or do you just get used to it with practice?

Best Answer

For gnome-terminal, add this to your ~/.vimrc (to be created if missing):

if has("autocmd")
  au InsertEnter * silent execute "!gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape ibeam"
  au InsertLeave * silent execute "!gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape block"
  au VimLeave * silent execute "!gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape ibeam"

Found here: Change cursor shape in different modes.


Change the last ibeam to block, to leave with a block cursor.