คำว่า "โฟกัส" หมายถึงการที่ขั้ว (หรือหน้าต่าง) ปัจจุบันคือการยอมรับแป้นพิมพ์และเมาส์กิจกรรมของท่าน มีเพียงหนึ่งเดียวเท่านั้นที่สามารถโฟกัสได้ มีโพรโทคอลสำหรับการกำหนดวิธีการรับและการสูญเสียโฟกัสในสภาพแวดล้อมแบบกราฟิกซึ่งมันจะไม่เป็นประโยชน์ในการสำรวจ
จากคำอธิบาย (ดูที่ตัวบ่งชี้บานหน้าต่างปัจจุบันของ Tmux เมื่อโฟกัสกลับคืนมา ) ปรากฏว่า iTerm2 ใช้xterm
คุณสมบัตินี้:
FocusIn / FocusOut
FocusIn / FocusOut สามารถใช้ร่วมกับเหตุการณ์เมาส์ใด ๆ เนื่องจากใช้โปรโตคอลที่แตกต่างกัน เมื่อตั้งค่าจะทำให้ xterm ส่ง CSI I เมื่อเทอร์มินัลได้รับโฟกัสและ CSI O เมื่อสูญเสียโฟกัส
มันเปิดใช้งานโดยโหมดส่วนตัว 1004 (เพิ่มลงใน xterm ในปี 2007 แพทช์ # 224 ):
CSI ? Pm h
DEC Private Mode Set (DECSET).
Ps = 1 0 0 4 -> Send FocusIn/FocusOut events.
และอาจเกี่ยวข้องกับแพทช์นี้: Vim - เพิ่มการรองรับโหมดโฟกัสการรายงาน (DECSET / DECRST 1004) ทำงานบนเทอร์มินัลที่ใช้งานร่วมกับ xtermซึ่งเท่ากับพฤติกรรมทั้งหมดของคุณสมบัติเมาส์ "xterm" ในการตั้งค่าเดียว:
/ * การรายงานการโฟกัสได้รับการสนับสนุนโดยเทอร์มินัลที่รองรับ xterm และ tmux * /
ดังนั้น ... คุณสามารถปิดการใช้งานว่าด้วยการบอกว่าเป็นกลุ่ม terminal ของคุณไม่ได้ใช้โปรโตคอล xterm เมาส์ แพตช์ที่ถูกอ้างถึงจะบอกให้ vim เปิดฟีเจอร์ FocusIn / FocusOut (ซึ่งปกติควรปิด) และหากมีข้อบกพร่องในตรรกะของมัน
แม้ว่า vim นั้นเป็นสาเหตุที่เป็นไปได้มากที่สุดของโหมดที่กำลังเปิดใช้งานเป็นไปได้ว่าบางโปรแกรม (หรือสคริปต์) จะเปิดใช้งาน ตามที่แนะนำในคำตอบอื่นคุณสามารถทำให้แคบลงได้โดยการรวบรวมเอาต์พุตไปยังเทอร์มินัลโดยใช้script
โปรแกรม (สร้างtypescript
ไฟล์) การวิเคราะห์ที่อาจใช้เวลานาน (และเนื่องจากไซต์นี้ไม่สนับสนุนสิ่งที่แนบมาจึงไม่เหมาะที่จะชักชวนการสนทนาอย่างละเอียด) โดยทั่วไปฉันใช้unmap
เพื่อแปลงไฟล์ typescript เป็นรูปแบบที่อ่านได้สำหรับวัตถุประสงค์นี้