Karena tidak hanya less
tetapi juga aplikasi teks lain seperti vim
memperlihatkan fitur yang sangat menjengkelkan yang sama, apa yang saya lakukan hanyalah menghilangkan kemampuan terminal untuk mendukung perintah yang terlibat dari terminfo
database.
Perintah-perintah ini adalah smcup
dan rmcup
, yang dirancang untuk memungkinkan pengaktifan dan pemindahan tempat cup
perintah (posisi kursor) diizinkan.
Ini adalah fungsi shell yang saya gunakan untuk mengotomatiskan tugas, ia bekerja setidaknya dengan Solaris dan kemungkinan besar distribusi 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}
)
}
Jika entri terminal Anda tidak mundur xterm
, Anda harus mengganti xterm
dengan nama terminal yang tepat dalam skrip.