A neat trick I stumbled over in iTerm2’s documentation is that one can change the cursor shape from the block (default) to a vertical bar. This is great to do for Vim’s insert mode where the cursor conceptually is between characters. Adding the following to ~/.vimrc
1 will change the cursor to a vertical bar in insert mode and keep it as a block in the other modes. This should also work in Konsole, as far as I know, so if you use Konsole you should extend/replace the $TERM_PROGRAM
check to look for Konsole.
" Change cursor shape between insert and normal mode in iTerm2.app
if $TERM_PROGRAM =~ "iTerm"
let &t_SI = "\<Esc>]50;CursorShape=1\x7" " Vertical bar in insert mode
let &t_EI = "\<Esc>]50;CursorShape=0\x7" " Block in normal mode
endif
A screenshot of how this looks:

Addendum (2016-05-26): You can achieve the same in Neovim by setting the environment variable
NVIM_TUI_ENABLE_CURSOR_SHAPE
to1
.
Or
~/.vim/vimrc
which in Vim 7.4 was finally added as a possiblevimrc
location, making it possible to gather all vim-related files in~/.vim
.↩︎