Você não deve separar t_ti e t_te, ou somente quando necessário. Da ajuda do vim:
Para edição normal, o terminal será colocado no modo "raw". As cordas definidos com 't_ti' e 't_ks' serão enviados para o terminal. Normalmente isso coloca o terminal em um estado em que os códigos termcap são válidos e são ativados as teclas de cursor e de função. Quando o Vim sair, o terminal será colocado de volta no modo em que estava antes de o Vim começar. As cadeias definidas com 't_te' e 't_ke' será enviado para o terminal.
Eu acredito que o seu problema é apenas isso: - você desmarca esses (por favor, apague as linhas que estão e / ou - o vim não reconhece (ou conhece os termcaps usados para) o terminal que você parece estar usando
Eu recomendo:
- elimine a parte "set t_ti = t_te=" do seu vimrc
- tente diferentes terminais: ex, para testar o vim usando "xterm" como TERM, você pode digitar (a partir do prompt do bash):
TERM=xterm vim
(na mesma linha, como mostrado, e com a atribuição localizada antes do comando)
Quando você atinge uma combinação que ambos exibem corretamente no vim e que o vim conhece (e, portanto, pode definir a seqüência do terminal corretamente), isso deve funcionar. A menos que você anule as sequências de terminal nos arquivos de recursos do vim, ou se houver outra opção, forçando-a a limpar o terminal ao sair.
Explicação para o acima: no bash (e sh, e outros) definindo uma variável imediatamente antes de um comando fará com que este comando tenha esta variável definida para esse valor, e não afetará o valor da variável após o comando sair. ex:
bash-2.05b$ echo $TERM
xterm
bash-2.05b$ TERM=vt100 ls -F
this/ this.tar
bash-2.05b$ echo $TERM
xterm
(TERM = vt100 somente durante a chamada de ls) (bom tentar valores diferentes TERM)