Empêcher Vim de vider le terminal après la sortie


15

Si je fais:

$ less file

Et appuyez qpour quitter less, je vois toujours le même texte que j'avais à l'écran quand il lessétait encore en cours d'exécution.

Cependant, si je le fais

$ vim file

Et :q, mon terminal est masqué ...

Captures d'écran de mon terminal après avoir quitté lesset vim:

entrez la description de l'image ici entrez la description de l'image ici

Puis-je en quelque sorte empêcher cela? Ce n'est que sur mon système Linux. Mon système FreeBSD fonctionne réellement comme prévu (en utilisant le même logiciel / paramètres tout autour, TERMc'est xterm-colorpour les deux, vim -u NONEça ne fait aucune différence).

Exemple de ce que j'aimerais avoir:

entrez la description de l'image ici

Réponses:


18

Par défaut, VIM, à la fin, envoie la chaîne configurée avec l'option t_teau terminal d'hébergement pour lui dire d'effacer l'écran. Pour l'éviter, il suffit :set t_te=de ne rien envoyer au terminal et d'éviter l'effacement de l'écran. Consultez le :help termformulaire pour plus d'informations sur les capacités du terminal.


2

Comme vous utilisez un xterm, vous pouvez utiliser ses tampons d'écran principal et alternatif pour l'échange d'écran, comme dans cette section de mon .vimrc

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

Remarque: ^[n'est pas un texte littéral, c'est le caractère d'échappement, utilisez Ctrl+ vsuivi de Escpour l'insérer.

Ces commandes vim ajoutent les commandes pertinentes qui peuvent être manquantes dans l'entrée linux terminfo. Plus d'infos sur

:help xterm-screens

Hm, ne semble toujours rien faire? Cela fonctionne comme si j'utilisais set t_te=, mais c'est censé faire plus, je pense?
Martin Tournoij
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.