linux - pantalla - conectar ubuntu a smart tv wifi
pantalla: ¿cómo activar la pantalla alternativa? (1)
Cuando trabajo en terminal, veo el historial de la última salida de ejecución de comandos de shell. Si ejecuto vim, veo el archivo que abro en pantalla completa. Cuando salgo de vim, puedo ver el historial de los últimos comandos de shell nuevamente.
Sin embargo, cuando uso vim desde la pantalla. Veo la huella del archivo que estaba editando en mi salida de vim en lugar del historial de los últimos comandos de shell. Sin embargo, me gustaría ver la historia del caparazón.
¿Cómo puedo lograr este comportamiento?
Solía:
- terminal.app y iterm2.app
- intenté cambiar xterm a xterm-256color (en iterm2.app)
- marcando y desmarcando "Guardar líneas para scrollback cuando una barra de estado de la aplicación está presente" y "Guardar líneas para scrollback en modo de pantalla alternativa" (en iterm2)
- agregando termcapinfo xterm ti @: te @ a .screenrc (aunque debería ser una solución al problema opuesto, pero ¿por qué no intentarlo?)
- sshing a máquinas linux y tratando de usar gnu-screen allí
Hasta ahora no obtuve el comportamiento deseado.
PD
Busqué en Google un poco y vi comentarios de personas que intentan resolver el problema opuesto:
La idea principal detrás de este comportamiento es si los programas usan una pantalla alternativa para guardar una imagen del historial de shell y lo muestran cuando sale vim. Por lo tanto, si uno quiere resolver el problema opuesto, debería
ACTUALIZACIÓN: me había olvidado de una característica de la screen
que desactiva el soporte de pantalla alternativo de forma predeterminada.
Agregue altscreen on
su $HOME/.screenrc
para habilitarlo. Esto es probablemente todo lo que tienes que hacer; todos los problemas con $TERM
, $TERMCAP
y $TERMINFO
probablemente sean innecesarios. Dejaré el resto de esta respuesta aquí de todos modos.
He tenido esto en mi propio .screenrc
tanto tiempo que se me .screenrc
.
Para habilitar esta característica para la sesión actual, escriba su carácter de escape de screen
( Cntrl-A por defecto) seguido de :altscreen on
Enter .
Sin esto, la screen
no responderá a las secuencias de escape, incluso si están definidas en terminfo o termcap.
vim
(y less
, y la mayoría de los otros programas de pantalla completa basados en curses) usan las smcup
y rmcup
definidas por la entrada terminfo para su terminal. (Estos se conocen como ti
y te
, respectivamente, en el sistema de termcap más antiguo). smcup
cambia a la pantalla alternativa y rmcup
vuelve a la pantalla principal.
Si su entrada terminfo no tiene estas cadenas, los programas no podrán hacer eso.
El comando de pantalla, de forma predeterminada, establece su $TERM
en "screen"
. Aparentemente, la entrada terminfo de "pantalla" no tiene smcup
y rmcup
.
Si tiene ganas de hackear entradas terminfo, puede modificar su información existente para "pantalla" para agregar smcup
y rmcup
. Necesitará el comando infocmp
para convertir su terminfo a un texto, y tic
para convertirlo a la forma binaria utilizada por terminfo.
Una solución más simple es establecer su variable de entorno $TERM
a lo que sea antes de invocar el comando de screen
. Casi todos los emuladores de terminal actualmente se basan en el antiguo DEC VT100, por lo que deberían ser lo suficientemente compatibles.
En mi sistema, por ejemplo, cuando inicio sesión tengo TERM=xterm
; es probable que sea algo más en MacOS. Dentro de una sesión de screen
, de manera predeterminada, tendría:
$ echo $TERM
screen
Podría cambiarlo a xterm
así:
$ export TERM=xterm
(De nuevo, reemplace "xterm" por cualquier $TERM
en su sistema).
También puedes agregar
term xterm
a su $HOME/.screenrc
. De hecho, la screen
tiene una serie de opciones para ajustar su configuración de termcap / terminfo; man screen
y búsqueda de "terminfo" para los detalles sangrientos.