Tim. Ambas as respostas acima estão corretas. O Vim muda o terminal para uma "tela alternativa" se a capacidade de fazer isso for definida na entrada termcap para $ TERM.
Você diz "em alguns terminais (... funciona direito ...)" e "em outros (... funciona de forma errada ...)"
Você está executando exatamente o mesmo emulador de terminal para todos esses terminais?
Por exemplo, na minha home linux box, eu tenho gnome-terminal, xterm, Konsole, yakuake e provavelmente mais alguns que eu esqueci, junto com os "terminais virtuais" associados ao ctrl-alt-F1 ... ctrl-alt-F6 ou mais. A maioria deles pode trabalhar com a entrada "padrão" termcap para "xterm" - exceto os terminais virtuais que possuem uma definição de terminal chamada "linux".
Verifique o emulador de terminal em si e o valor de $ TERM nos terminais que funcionam e nos que não funcionam, para ver o que é diferente. Além disso, se você estiver logado como um usuário diferente, às vezes, isso pode estar no centro do problema - já que cada usuário tem seu próprio .bashrc, várias configurações podem diferir de usuário para usuário.
Espero que ajude!
-br