目前我已经将vim配置为根据我所处的模式更改光标形状,并且它可以正常工作(下面的代码)。我的问题是我有一些插件在插入模式下运行但短暂地返回正常模式执行(例如UltiSnips和AutoPairs)。当它们短暂地返回到正常模式时,光标会在返回条形之前翻转到一个块,导致奇怪且分散注意力的闪烁效果。当我手动切换模式时,有没有办法只触发光标形状开关而不是通过脚本更改?还是其他一些聪明的黑客来解决这个问题?
if empty($TMUX)
let &t_SI = "\<Esc>]50;CursorShape=1\x7" " Vertical bar in insert mode
let &t_EI = "\<Esc>]50;CursorShape=0\x7" " Block in normal mode
let &t_SR = "\<Esc>]50;CursorShape=2\x7" " Underline in replace mode
else
let &t_SI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=1\x7\<Esc>\\"
let &t_EI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=0\x7\<Esc>\\"
let &t_SR = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=2\x7\<Esc>\\"
endif