mudança de cor do cursor vim aplicada apenas em movimento

3

No meu .vimrc eu tenho o seguinte (baseado em uma dica na 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 "3]12;\#FFA560
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 "3]12;\#FFA560%pre%7"
   " reset cursor when vim exits
   autocmd VimLeave * silent !echo -ne "3]112%pre%7"
endif
7" " reset cursor when vim exits autocmd VimLeave * silent !echo -ne "3]112%pre%7" endif

Deverá mudar o cursor de laranja para vermelho quando eu entrar no modo de inserção e alterá-lo de volta quando eu sair. No entanto, isso só funciona se a maneira como entro no modo de inserção mover o cursor, por exemplo, 'Eu' ou 'a' mas não 'eu'. Além disso, se eu entrar e sair do modo de inserção sem ter feito nada (ou mover o cursor), pressionar 'escape' moverá o cursor um espaço para trás, o que tornará o cursor vermelho, em vez de mantê-lo como laranja.

Existe uma maneira de corrigir isso? Estou usando xfce4-terminal .

    
por Chan-Ho Suh 26.05.2013 / 04:27

1 resposta

0

Funciona da mesma forma no gnome-terminal. Se você esperar um segundo, ele muda para a cor correta, mas acho que o segundo ou o segundo não são controláveis porque os códigos são inseridos pelo vim com base nos eventos internamente. Eu não acho que esse segundo preciso possa ser corrigido.

    
por grantbow 17.04.2015 / 18:33