O customcl termcap faz com que o vim congele dentro da tela do gnu

0

Eu estava preocupado com a rolagem do terminal dentro de screen , além de ter configurado o altscreen on que afeta apenas alguns programas, não tendo nenhum efeito ao alternar entre janelas.

Eu sei que printf '\ec' limpa o terminal melhor que o comando Ctrl+L ou comum clear , então decidi aplicar isso.

O termcap padrão para cl entry é \E[H\E[J , que é o mesmo que ho ( \E[H ) seguido por cd ( \E[J ) você pode obter esses valores se você echo $TERMCAP dentro de um screen session.

Gostaria de saber se a alteração de cl para \Ec causaria o efeito esperado e, sim, aplausos! Mas infelizmente causou um enorme efeito colateral: as teclas de seta pararam de funcionar dentro de vim .

Ainda consigo navegar usando as chaves H , J , K e L , de modo que não vejo motivo para não trabalhar com as teclas de seta.

Eu quero evitar alterar .vimrc , pois isso é causado por screen , e posso executar vim dentro de uma sessão ssh , então eu teria que alterar o .vimrc de todas as máquinas.

Aqui está meu .screenrc :

atual
vbell off
startup_message off
altscreen on
termcapinfo xterm* ti@:te@:cl=\Ec
#termcapinfo xterm* xn:hs@:cd=\E[J:ho=\E[H

Eu tenho tentado algumas variantes, com e sem ti e assim por diante, mas o problema parece ser cl , se o valor for \E[H\E[J , senão não.

Para reproduzir o problema, escreva o arquivo $HOME/.screenrc com o conteúdo acima e inicie uma sessão com por exemplo screen -ADRS profile e, em seguida, tente vim .screenrc , você pode ver que não poderá navegar usando as setas-chave no teclado, apenas HJKL keys.

Screen version 4.03.01 (GNU) 28-Jun-15
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:44:48)

É possível ter o mesmo comportamento que limpar com \Ec e manter o vim funcionando?

Observação1: como @schily afirmou, não é necessariamente um problema de termcap , mas talvez um terminfo , mas de qualquer forma eu estou usando a instrução termcapinfo no meu .screenrc que, de acordo com o manual, aplica o ajuste a regra para termcap e terminfo , não sou especialista em termcap/info , só quero resolver isso.
Observação2: executar vim com :set term=linux faz com que funcione, mas, como afirmei antes, gostaria de evitar a alteração de .vimrc .
Nota 3: isso afeta less também, e provavelmente outros, mais uma imposição sobre ser um problema screen .
Nota 4: Eu enviei um erro: link

    
por Tiago Pimenta 15.07.2018 / 15:10

0 respostas