ไม่เพียงless
แต่ยังมีแอพพลิเคชั่นข้อความอื่น ๆ เช่นvim
แสดงคุณสมบัติที่น่ารำคาญอย่างยิ่งเหมือนกันสิ่งที่ฉันทำคือการลบความสามารถของเทอร์มินัลเพื่อรองรับคำสั่งที่เกี่ยวข้องจากterminfo
ฐานข้อมูล
คำสั่งเหล่านี้คือsmcup
และrmcup
ซึ่งถูกออกแบบมาเพื่ออนุญาตให้เปิดและย้ายที่อนุญาตให้ใช้cup
คำสั่ง (ตำแหน่งเคอร์เซอร์)
นี่คือฟังก์ชั่นเชลล์ที่ฉันใช้ในการทำงานอัตโนมัติให้ทำงานอย่างน้อยกับ Solaris และการแจกแจง 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}
)
}
หากรายการเทอร์มินัลของคุณไม่ย้อนกลับไปxterm
เป็นคุณควรแทนที่xterm
ด้วยชื่อสถานีด้านขวาในสคริปต์