Изменение цвета курсора 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 на основе внутренних событий. Я не думаю, что точную секунду можно исправить.