изменение цвета курсора 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

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

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

3
задан 26 May 2013 в 06:33

1 ответ

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

0
ответ дан 26 May 2013 в 06:33

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

Похожие вопросы: