Rolagem no Vim através da Tela (e PuTTY) às vezes insere caracteres aleatórios

2

Estou tendo um problema estranho com o Vim, a tela e a massa.

Estou conectando ao Screen through Putty, que, em geral, funciona bem. Eu tive alguns problemas com a rolagem para trabalhar no Vim, no entanto.

Alguns detalhes:

  • Eu defino termcapinfo xterm* ti@:te@ no meu screenrc para poder usar a roda do mouse para rolar. Não funciona muito bem (a rolagem fica confusa entre as janelas de tela), mas eu prefiro usar o teclado
  • Eu tenho set term=xterm no meu vimrc.
  • Também no meu vimrc, eu configurei mouse=a e ttymouse=xterm2 , para que eu possa usar o mousewheel. É aqui que surgem problemas
    • Quando eu rolar com o mouse no lado esquerdo da janela do PuTTY, ele funciona bem
    • Quando eu rodo com o mouse no lado direito da janela do PuTTY, caracteres aleatórios são inseridos no arquivo que estou editando ou na linha de comando do Vim.

Eu não consigo encontrar mais ninguém com esse problema quando pesquisei e não sei o que fazer. Qualquer sugestão sobre o que eu poderia tentar seria realmente útil.

Deixe-me saber se posso fornecer mais alguma informação.

    
por Adam 13.07.2012 / 10:56

1 resposta

1

Colocar " set term=xterm " no seu vimrc é uma má idéia e provavelmente a causa de seus problemas; quando rodando sob tela, seu TERM (no shell) e a opção 'term' no Vim devem ser "screen" e nada mais.

Se você estava tentando resolver um problema com o TERM configurando a opção 'term' no Vim, é necessário encontrar a origem real do problema e corrigi-lo lá. O PuTTY está emulando o tipo de terminal correto? O seu shell antes inicia a tela refletindo o TERM adequado? ( echo $TERM na linha de comando do shell). E, finalmente, é o seu shell após iniciar a tela definida como "tela" (como sempre deveria ser)?

Se você ainda tiver esse problema depois de corrigir os problemas TERM, verifique a saída de:

:verbose set ttimeout? ttimeoutlen?

(Observe os double t's e os pontos de interrogação fazem parte do comando.)

Normalmente, a saída seria "nottimeout ttimeoutlen = -1" em duas linhas, se for outra, tente redefini-las:

:set ttimeout& ttimeoutlen&
    
por 13.07.2012 / 22:35