Следующее работает для xterm / urxvt / ... (Linux), iTerm2 (Mac), Git Bash с ConEmu (Windows) и другими (см. Комментарии):
let &t_SI = "\e[6 q"
let &t_EI = "\e[2 q"
" optional reset cursor on start:
augroup myCmds
au!
autocmd VimEnter * silent !echo -ne "\e[2 q"
augroup END
Когда вы используете tmux , важно использовать его вот так (без выхода \<Esc>Ptmux;
) - tmux будет отслеживать правильную форму курсора при переключении окон / панелей. Вам может потребоваться установить TERM=xterm-256color
перед запуском tmux, если он не работает для вас.
Другие опции (заменить число после \ e [):
Ps = 0 -> blinking block.
Ps = 1 -> blinking block (default).
Ps = 2 -> steady block.
Ps = 3 -> blinking underline.
Ps = 4 -> steady underline.
Ps = 5 -> blinking bar (xterm).
Ps = 6 -> steady bar (xterm).