Evite que Vim despeje la terminal después de salir

15

Si lo hago:

$ less file

Y al presionar qpara salir less, todavía veo el mismo texto que tenía en la pantalla cuando lessaún se estaba ejecutando.

Sin embargo, si lo hago

$ vim file

Y :qmi terminal está en blanco ...

Capturas de pantalla de mi terminal después de salir lessy vim:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

¿De alguna manera puedo evitar esto? Esto es solo en mi sistema Linux. Mi sistema FreeBSD realmente funciona como se esperaba (usar el mismo software / configuración por todas partes, TERMes xterm-colorpara ambos, vim -u NONEno hace la diferencia).

Ejemplo de lo que me gustaría tener:

ingrese la descripción de la imagen aquí

Martin Tournoij
fuente

Respuestas:

18

Por defecto, VIM, cuando finaliza, envía la cadena configurada con la opción t_teal terminal de alojamiento para indicarle que borre la pantalla. Para evitarlo, simplemente :set t_te=no envíe nada al terminal y evite borrar la pantalla. Consulte el :help termformulario para obtener más información sobre las capacidades del terminal.

toro2k
fuente
2

Como está usando un xterm, puede usar sus buffers de pantalla principal y alternativo para el intercambio de pantalla, como en esta sección de mi .vimrc

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

Nota: no^[ es texto literal, es el carácter de escape, use + seguido de para insertarlo.CtrlvEsc

Estos comandos vim agregan los comandos relevantes que pueden faltar en la entrada de linux terminfo. Más información en

:help xterm-screens
jalanb
fuente
¿Todavía no parece hacer nada? Funciona como si lo usara set t_te=, pero se supone que debe hacer más, creo.
Martin Tournoij