La característica parece llamarse 'pantalla alternativa' o cambiar entre pantalla normal y alternativa.
Puedes explorarlo usando un xterm. Por ejemplo, escriba man man
an xterm
y salga de man. Ahora puede cambiar a la pantalla alternativa mediante Ctrl+ Mouse2 (clic central) -> 'Mostrar pantalla alternativa'. Alternativamente, puede ingresar directamente las secuencias de control de xterm , por ejemplo:
$ echo -e '\033[?47h' # alternate screen
$ echo -e '\033[?47l' # normal screen
Los dos últimos comandos también funcionan en gnome-terminal (probablemente también en otros).
Lo que sucede cuando man
/ vi
/ less
etc. inicio es básicamente que envían un comando abstracto de pantalla clara. Al salir (o suspender) envían un comando abstracto de restauración de pantalla. La forma en que el comando se traduce en secuencias de control de terminal concretas se define en la base de datos terminfo .
Deshabilitar cambio de pantalla alternativo
Lo que debería funcionar para todos los terminales es ajustar las entradas locales de terminal, es decir, eliminar la asignación de comandos abstractos de borrar / restaurar pantalla.
Puede hacerlo así: para la $TERM
entrada actual (para gnome-terminal en Fedora 19, por ejemplo):
$ echo $TERM
xterm-256color
$ infocmp -1 > xterm-256color
$ sed 's/^\(xterm-256color\)|/\1-na|/ ; /smcup\|rmcup/d ' \
xterm-256color > xterm-256color-na
$ diff -u xterm-256color*
--- xterm-256color 2013-08-04 16:33:52.041393461 +0200
+++ xterm-256color-na 2013-08-04 16:36:56.829930520 +0200
@@ -1,5 +1,5 @@
# Reconstructed via infocmp from file: /usr/share/terminfo/x/xterm-256color
-xterm-256color|xterm with 256 colors,
+xterm-256color-na|xterm with 256 colors,
am,
bce,
ccc,
@@ -155,7 +155,6 @@
rin=\E[%p1%dT,
rmacs=\E(B,
rmam=\E[?7l,
- rmcup=\E[?1049l,
rmir=\E[4l,
rmkx=\E[?1l\E>,
rmm=\E[?1034l,
@@ -170,7 +169,6 @@
sgr0=\E(B\E[m,
smacs=\E(0,
smam=\E[?7h,
- smcup=\E[?1049h,
smir=\E[4h,
smkx=\E[?1h\E=,
smm=\E[?1034h,
$ tic xterm-256color-na # loads the file to $HOME/.terminfo
$ find ~/.terminfo -type f
$ HOME/.terminfo/x/xterm-256color-na
Ahora puedes probarlo a través de:
$ TERM=xterm-256color-na man man # and then hit q
Puede repetir los pasos anteriores para otros terminales si usa varios. Si todo funciona como se espera, puede configurarlo a TERM
través de su shell rc-file.
También puede especificar directamente el nombre del terminal como parámetro para infocmp
, por ejemplo:
$ infocmp -1 screen > screen
Habilitar cambio de pantalla alternativo
Algunos terminales admiten la función alternativa de cambio de pantalla (p . Ej., Pantalla ), pero la desactivan por defecto .
Para screen
que pueda habilitarlo a través de su ~/.screenrc
:
$ cat ~/.screenrc
altscreen
Si inicia sesión de forma remota a través de ssh para, por ejemplo, un sistema Solaris, tal vez la base de datos terminfo configurada de forma remota en todo el sistema sea histórica, esté dañada o incluya algunos valores predeterminados inusuales / específicos de Solaris que no coinciden con los terminales 'de última generación' corres ssh adentro.
Por lo tanto, es una opción copiar la base de datos local de terminfo desde / usr / share / info (en el cliente) a host:~/.terminfo
(en el servidor).
En caso de que el formato terminfo compilado no sea compatible, también puede exportar / importar las entradas como en el párrafo anterior.
He intentado con un terminfo-db de una instalación de Cygwin y funcionó copiarlo directamente a un sistema Solaris 10.
En caso de que desee compartir una terminfo db alternativa entre usuarios, especifique su ruta a través de la TERMINFO
variable de entorno.
Ignorar la secuencia de control
Algunos terminales admiten la desactivación de la secuencia de control para el cambio de pantalla alternativo. Por ejemplo, xterm tiene una opción, gnome-terminal no.
Para xterm es la fuente X , p. Ej.
XTerm*titeInhibit: true
Configuraciones específicas del programa
Algunos programas tienen archivos de configuración para configurar qué secuencia de control / comandos terminfo envían. Por ejemplo
$ LESS=X less foo
configura less
para no borrar / restaurar la pantalla.
Para vim
que pueda incluir algo como
set t_ti= t_te=
en ti ~/.vimrc
.
No he encontrado la opción de cómo configurar ese comportamiento para la parte superior; de forma predeterminada, no envía la pantalla de restauración.