Изменение цвета курсора vim применяется только при движении

В моем .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

Предполагается изменить курсор с оранжевого на красный, когда я вхожу в режим вставки, и вернуть его обратно, когда я уйду. Однако это работает только в том случае, если при входе в режим вставки курсор перемещается, например, "I" или "a", но не "i". Кроме того, если я войду и выйду из режима вставки, ничего не сделав (или не переместив курсор), нажатие клавиши escape приведет к перемещению курсора назад на один пробел, при котором курсор будет красным, а не оранжевым.

Есть ли способ это исправить? я использую xfce4-terminal,

1 ответ

То же самое работает в gnome-терминале. Если вы подождете секунду, она изменится на правильный цвет, но я думаю, что секунда или две не поддаются контролю, потому что коды вставляются vim на основе внутренних событий. Я не думаю, что точную секунду можно исправить.

Другие вопросы по тегам