在我的.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 根据内部事件插入的。我不认为精确的秒数是可以确定的。