Como no solo less
sino también otras aplicaciones de texto como vim
exhiben la misma característica extremadamente molesta, lo que hago es simplemente eliminar la capacidad del terminal de admitir los comandos involucrados de la terminfo
base de datos.
Estos comandos son smcup
y rmcup
, que fueron diseñados para permitir el encendido y de un movimiento donde cup
se permitió el comando (posición del cursor).
Aquí hay una función de shell que utilicé para automatizar la tarea, funciona al menos con Solaris y probablemente la mayoría de las distribuciones de Linux:
fixterminfo()
{
(
[[ ! -d /tmp/terminfo ]] && { mkdir /tmp/terminfo || return ; }
cd /tmp/terminfo || return
TERM=xterm infocmp > xterm.src.org
sed -e 's/rmcup=[^,]*,//' -e 's/smcup=[^,]*,//' xterm.src.org > xterm.src
if diff xterm.src.org xterm.src
then
echo xterm terminfo already patched
return
fi
TERMINFO=/tmp/terminfo tic xterm.src
if [ -f /usr/share/lib/terminfo/x/xterm ] ; then
XTERM=/usr/share/lib/terminfo/x/xterm
else
if [ -f /lib/terminfo/x/xterm ] ; then
XTERM=/lib/terminfo/x/xterm
else
if [ -f /usr/share/terminfo/x/xterm ] ; then
XTERM=/usr/share/terminfo/x/xterm
else
echo xterm terminfo not found ; return
fi
fi
fi
if [ ! -f ${XTERM}.org ]
then
sudo cp ${XTERM} ${XTERM}.org || return
fi
cat /tmp/terminfo/x/xterm | sudo dd of=${XTERM}
)
}
Si su entrada de terminal no tiene respaldo xterm
, debe reemplazarla xterm
por el nombre de terminal correcto en el script.