Impedir que o Vim limpe o terminal após a saída

15

Se eu fizer:

$ less file

E pressione qpara sair less, ainda vejo o mesmo texto da tela quando lessainda estava em execução.

No entanto, se eu fizer

$ vim file

E :q, meu terminal está em branco ...

Capturas de tela do meu terminal após sair lesse vim:

insira a descrição da imagem aqui insira a descrição da imagem aqui

De alguma forma, posso impedir isso? Isso é apenas no meu sistema Linux. Meu sistema FreeBSD realmente funciona como o esperado (usar o mesmo software / configurações ao redor, TERMé xterm-colorpara ambos, vim -u NONEnão faz diferença).

Exemplo do que eu gostaria de ter:

insira a descrição da imagem aqui

Martin Tournoij
fonte

Respostas:

18

Por padrão, o VIM, ao finalizar, envia a sequência configurada com a opção t_tepara o terminal de hospedagem para solicitar a limpeza da tela. Para evitá-lo, basta :set t_te=não enviar nada ao terminal e evitar a limpeza da tela. Consulte o :help termformulário para obter mais informações sobre os recursos do terminal.

toro2k
fonte
2

Como você está usando um xterm, você pode usar seus buffers de tela principal e alternativo para troca de tela, como nesta seção do meu .vimrc

if &term == "linux"
    set t_ti=^[[?1049h
    set t_te=^[[?1049l
endif                                                       

Nota: não^[ é um texto literal, é o caractere de escape, use Ctrl+ vseguido de Escpara inseri-lo.

Esses comandos vim incluem os comandos relevantes que podem estar ausentes na entrada linfo terminfo. Mais informações em

:help xterm-screens
jalanb
fonte
Ainda parece não fazer nada? Funciona como se eu usasse set t_te=, mas deveria fazer mais, acho?
Martin Tournoij