vim 光标颜色变化仅在移动时应用

vim 光标颜色变化仅在移动时应用

在我的.vimrc我有以下内容(基于vim 维基百科):

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-terminal 中也是一样。如果你等一秒钟,它确实会变成正确的颜色,但我认为那一两秒是不可控的,因为代码是由 vim 根据内部事件插入的。我不认为精确的秒数是可以确定的。

相关内容