В моем .vimrc
у меня есть следующее (основываясь на подсказке на vim Wikia ):
if &term =~ "xterm\\|rxvt"
" use an red cursor in insert mode
let &t_SI = "\<Esc>]12;red\x7"
" use an orange-ish cursor otherwise
let &t_EI = "\<Esc>]12;\#FFA560\x7"
silent !echo -ne "\033]12;\#FFA560\007"
" reset cursor when vim exits
autocmd VimLeave * silent !echo -ne "\033]112\007"
endif
Предполагается изменить курсор с оранжевого на красный, когда Я вхожу в режим вставки и меняю его обратно при выходе. Однако это работает только в том случае, если при входе в режим вставки курсор перемещается, например, «Я» или «а», но не «я». Кроме того, если я войду и выйду из режима вставки, ничего не сделав (или не переместив курсор), нажатие клавиши escape приведет к перемещению курсора на одну позицию назад, при котором курсор станет красным, а не оранжевым.
Есть ли способ это исправить? Я использую xfce4-terminal
.
То же самое работает в терминале gnome. Если вы подождете секунду, она изменится на правильный цвет, но я думаю, что секунда или две не поддаются контролю, потому что коды вставляются vim на основе внутренних событий. Я не думаю, что точную секунду можно исправить.