Gnome Erro de terminal com códigos de movimento do cursor VT100

1

Eu tenho um problema de escape ansi com o Gnome Terminal. O que poderia estar causando e como eu corrijo um problema como esse? Como não consigo descrever o problema muito bem, tenho uma captura de tela para mostrá-lo. Quando edito uma linha no terminal ou troco linhas no Vim, recebo o que parece ser uma sequência de escape ansi parcial. Na imagem abaixo, são as áreas destacadas em azul. Eles não devem estar lá e, em vez disso, devem ser o texto colorido corretamente.

    
por Jason 21.02.2016 / 06:38

1 resposta

2

Isso pode ser um plug-in tentando alterar a aparência do cursor de texto. O tmux também usa o recurso, por exemplo, como no bloco xterm+tmux descrições dos terminais. O aplicativo está enviando uma seqüência de controle DECSCUSR , descrita em Sequências de Controle XTerm :

CSI Ps SP q
          Set cursor style (DECSCUSR, VT520).
            Ps = 0  -> blinking block.
            Ps = 1  -> blinking block (default).
            Ps = 2  -> steady block.
            Ps = 3  -> blinking underline.
            Ps = 4  -> steady underline.
            Ps = 5  -> blinking bar (xterm).
            Ps = 6  -> steady bar (xterm).

e o 6 na sua captura de tela provavelmente se refere ao 6 listado aqui. Isso foi adicionado em patch # 282 (2012/09/28), e é como um Recurso xterm .

Referindo-se ao código-fonte do tmux 2.1, ele possui um valor padrão compilado para a configuração terminal-override :

    { .name = "terminal-overrides",
      .type = OPTIONS_TABLE_STRING,     
      .default_str = "xterm*:XT:Ms=\E]52;%p1%s;%p2%s\007"
                     ":Cs=\E]12;%p1%s\007:Cr=\E]112\007"
                     ":Ss=\E[%p1%d q:Se=\E[2 q,screen*:XT"
    },

Comentário:

  • O XT deve ser redundante (já que o banco de dados do ncurses teria isso). É definido mais ou menos na página de manual screen .
  • A string Ms refere-se a dados de seleção (você pode querer isso, mas, novamente, as chances de ele ser suportado corretamente em outros terminais são mínimas)
  • Os outros são para aparência do cursor.

Como uma verificação rápida, você pode definir terminal-overrides no seu tmux.conf , omitindo os recursos do cursor:

terminal-overrides xterm*:XT:,screen*:XT
    
por 21.02.2016 / 12:36