sobre o terminal do Windows altere a largura ou a cor do cursor no Vim, dependendo do modo

4

Estou usando o PuTTY para me conectar via SSH a um servidor Ubuntu da estação de trabalho do Windows 7. Uma vez conectado, estou usando a instalação do Vim do servidor Ubuntu para editar arquivos. Eu quero que o cursor mude quando eu entro e saio do modo de inserção. Parte do meu arquivo .vimrc é assim, mas não está mudando o cursor:

if &term =~ "xterm"
    echo "xTerm!!inate!"
    let &t_SI = "\<Esc>]12;purple\x7"
    let &t_EI = "\<Esc>]12;blue\x7"
endif

Eu sei que a instrução if está sendo executada por causa do eco.

EDITAR: Na verdade, eu preferiria alterar o cursor para ser uma linha vertical como nas configurações do PuTTY, em vez de alterar a cor, ou talvez até fazer as duas coisas. Mas apenas mudar a cor seria muito melhor que nada. Também estou disposto a mudar de terminal se houver outro terminal compatível com o Windows 7 Professional 64 bits que possa fazer isso (de preferência algo livre). Talvez a Poderosa possa fazer isso?

    
por still_dreaming_1 30.06.2011 / 07:37

1 resposta

3

O seu exemplo parece funcionar bem com o xterm, por isso não acho que seja .vimrc o problema.

Indo um pouco mais fundo, parece que o PuTTY não parece implementar o código de escape do OSC que você está usando para alterar a cor do cursor (consulte do_osc in terminal.c nas origens do PuTTY). Navegando pelas fontes, também não encontrei nenhum outro mecanismo para fazer algo semelhante. Isso significa que provavelmente não será uma maneira fácil de fazer isso funcionar no PuTTY.

Suas soluções provavelmente estarão limitadas a:

  1. Tentando pleitear com os autores do PuTTY para implementar o código de escape relevante do OSC;
  2. Alterando seu programa de terminal; ou
  3. Encontrar outra maneira de informar ao vim o modo em que você está.

Eu suspeito que o terceiro será o mais fácil, infelizmente.

    
por 30.06.2011 / 08:26