ดูเหมือนว่าคุณสมบัตินี้จะเรียกว่า 'หน้าจอทางเลือก' หรือสลับไปมาระหว่างหน้าจอปกติและหน้าจอทางเลือก
คุณสามารถสำรวจโดยใช้ xterm ตัวอย่างเช่นพิมพ์man man
ในxterm
และคนออก ตอนนี้คุณสามารถสลับไปยังหน้าจออื่นผ่านCtrl+ Mouse2 (คลิกกลาง) -> 'แสดงหน้าจอทางเลือก' หรือคุณสามารถป้อนลำดับการควบคุม xtermโดยตรงเช่น:
$ echo -e '\033[?47h' # alternate screen
$ echo -e '\033[?47l' # normal screen
คำสั่งสองคำสั่งสุดท้ายยังใช้งานได้ใน gnome-terminal (อาจเป็นคำสั่งอื่นเช่นกัน)
เกิดอะไรขึ้นเมื่อman
/ vi
/ less
ฯลฯ เริ่มต้นโดยทั่วไปพวกเขาส่งคำสั่งที่ชัดเจนหน้าจอที่เป็นนามธรรม เมื่อออก (หรือหยุดชั่วคราว) พวกเขาจะส่งคำสั่งเรียกคืนหน้าจอที่เป็นนามธรรม วิธีที่คำสั่งแปลเป็นลำดับการควบคุมเทอร์มินัลที่เป็นรูปธรรมถูกกำหนดไว้ในฐานข้อมูลterminfo
ปิดใช้งานการสลับหน้าจอทางเลือก
สิ่งที่ควรใช้กับเทอร์มินัลทั้งหมดคือการปรับรายการ terminfo ภายในเครื่องเช่นการลบการแม็พคำสั่ง abstract clear / restore screen
คุณสามารถทำได้เช่นนี้ - สำหรับ$TERM
รายการปัจจุบัน(สำหรับ gnome-terminal ใน Fedora 19 เป็นต้น):
$ 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
ตอนนี้คุณสามารถทดสอบผ่าน:
$ TERM=xterm-256color-na man man # and then hit q
คุณสามารถทำซ้ำขั้นตอนข้างต้นสำหรับเทอร์มินัลอื่นถ้าคุณใช้หลาย ๆ อัน หากทุกอย่างทำงานได้ตามที่คาดไว้คุณสามารถตั้งค่าTERM
ผ่านเปลือก rc-file ของคุณ
คุณยังสามารถระบุชื่อเทอร์มินัลเป็นพารามิเตอร์infocmp
โดยตรงเช่น:
$ infocmp -1 screen > screen
เปิดใช้งานการสลับหน้าจอทางเลือก
ขั้วบางคนสนับสนุนคุณสมบัติการสลับหน้าจออื่น (เช่นหน้าจอ ) แต่ปิดการใช้งานในการเริ่มต้น
เพื่อให้screen
คุณสามารถเปิดใช้งานผ่าน~/.screenrc
:
$ cat ~/.screenrc
altscreen
หากคุณเข้าสู่ระบบจากระยะไกลผ่านทาง ssh to - say - ระบบ Solaris บางทีระบบฐานข้อมูล terminfo ที่กำหนดค่าจากระยะไกลนั้นเป็นฐานข้อมูลประวัติศาสตร์ที่มีความเสียหายหรือมีค่าเริ่มต้นที่ผิดปกติ / เฉพาะ Solaris ที่ไม่ตรงกับเทอร์มินัล คุณเรียกใช้ ssh
ดังนั้นจึงเป็นตัวเลือกเพียงคัดลอกฐานข้อมูล terminfo โลคัลจาก / usr / share / info (บนไคลเอ็นต์) ไปยังhost:~/.terminfo
(บนเซิร์ฟเวอร์)
ในกรณีที่รูปแบบ terminfo รวบรวมไม่เข้ากันคุณสามารถส่งออก / นำเข้ารายการเช่นในวรรคก่อนหน้า
ฉันได้ลองด้วย terminfo-db จากการติดตั้งCygwinและคัดลอกโดยตรงไปยังระบบ Solaris 10
ในกรณีที่คุณต้องการแบ่งปัน db terminfo ทางเลือกระหว่างผู้ใช้คุณระบุเส้นทางของมันผ่านTERMINFO
ตัวแปรสภาพแวดล้อม
ไม่สนใจลำดับการควบคุม
เทอร์มินัลบางตัวรองรับการปิดใช้งานลำดับการควบคุมสำหรับการสลับหน้าจอทางเลือก ตัวอย่างเช่น xterm มีตัวเลือก gnome-terminal ไม่มี
สำหรับ xterm เป็นX-ressourceเช่น
XTerm*titeInhibit: true
การกำหนดค่าเฉพาะของโปรแกรม
บางโปรแกรมมีไฟล์การกำหนดค่าเพื่อกำหนดค่าการควบคุมลำดับ / คำสั่ง terminfo ที่พวกเขาส่ง ตัวอย่างเช่น
$ LESS=X less foo
กำหนดค่าless
เพื่อไม่ล้าง / เรียกคืนหน้าจอ
สำหรับvim
คุณสามารถรวมสิ่งที่ชอบ
set t_ti= t_te=
~/.vimrc
ในตัวคุณ
ฉันไม่พบตัวเลือกในการกำหนดค่าพฤติกรรมดังกล่าวสำหรับด้านบน - โดยค่าเริ่มต้นจะไม่ส่งหน้าจอการคืนค่า