หน้าต่าง Terminal สามารถปรับขนาดด้วยคำสั่ง Terminal ได้หรือไม่?


38

เพื่อให้ฉันสามารถปรับขนาดหน้าต่างเป็นขนาดที่กำหนดจากภายในเทอร์มินัล

คำตอบ:


58

ใช่. เทอร์มินัลรองรับลำดับ escape สำหรับจัดการหน้าต่างรวมถึงขนาดและตำแหน่งตำแหน่งเลเยอร์และย่อขนาดเล็กสุด ส่วนข้อมูลสามารถแสดงเป็นพิกเซลหรือตัวอักษร ดูรายละเอียดของลำดับการควบคุม Xterm (ค้นหา“ การปรับแต่งหน้าต่าง” หากคุณไม่คุ้นเคยกับสัญกรณ์“ CSI” หมายถึง“ ผู้แนะนำลำดับการควบคุม” ซึ่งก็คือESC [)

ตัวอย่างเช่นคำสั่งเชลล์นี้จะตั้งค่าหน้าต่างเป็น 100x50 ตัวอักษร:

printf '\e[8;50;100t'

ย่อเล็กสุดหน้าต่างสักสองสามวินาทีแล้วคืนค่า:

printf '\e[2t' && sleep 3 && printf '\e[1t'

ย้ายหน้าต่างไปที่มุมบน / ซ้ายของจอแสดงผล:

printf '\e[3;0;0t'

ซูมหน้าต่าง:

printf '\e[9;1t'

นำหน้าต่างไปไว้ด้านหน้า (โดยไม่เปลี่ยนโฟกัสของแป้นพิมพ์):

printf '\e[5t'

การเปิดใช้งานลำดับการควบคุมในเทอร์มินัลอีมูเลเตอร์

เทอร์มินัลอีมูเลเตอร์บางตัวเพิกเฉยต่อลำดับการควบคุมเหล่านี้ตามค่าเริ่มต้นและต้องการการกำหนดค่าเพื่อเปิดใช้งาน

หากต้องการเปิดใช้งานสิ่งเหล่านี้ในXTermให้ตั้งค่าทรัพยากรต่อไปนี้เป็นจริง:

allowWindowOps

หากต้องการเปิดใช้งานสิ่งเหล่านี้ในiTerm2ให้ยกเลิกการเลือกการตั้งค่าต่อไปนี้:

การตั้งค่า> โปรไฟล์> [โปรไฟล์]> เทอร์มินัล> ปิดใช้งานการปรับขนาดหน้าต่างที่เริ่มต้นจากเซสชัน


นี่เป็นเพียงที่สมบูรณ์แบบ!
LopSae

2
จากนี้ไปคุณคือพระเจ้าของฉัน!
d12frosted

2
ดูเหมือนจะไม่สามารถใช้งานโยเซมิตีกับ iterm2 ได้
Jistanidiot

ใช้งานได้ดี แต่ดูเหมือนว่า Terminal ไม่ยอมรับการปรับขนาดที่จะทำให้หน้าต่างมองเห็นได้เพียงบางส่วนเท่านั้นบนหน้าจอ ฉันเพิ่งลอง printf '\ e [8; 100; 100t' และสิ่งนี้ถูกตัดเหลือ 79x100 สิ่งที่พอดี ปัญหาของฉันคือฉันต้องข้ามเม้าส์เพื่อขยายเทอร์มินัลเกินขีด จำกัด หน้าจอนี้ ...
phs

1
วิธีนี้ใช้ได้กับ iTerm2
TextGeek

10

คุณสามารถใช้ AppleScript ได้ตลอดเวลา:

setwidth() { osascript -e "tell app \"Terminal\" to tell window 1
set b to bounds
set item 3 of b to (item 1 of b) + $1
set bounds to b
end"; }

ใช้งานได้กับหน้าต่าง / แท็บเทอร์มินัลที่ใช้งานอยู่ในปัจจุบันเท่านั้น เพื่อการทำงานที่เชื่อถือได้รับชื่อพา ธ ของอุปกรณ์ tty ปัจจุบันและค้นหาแท็บเทอร์มินัลที่ตรงกัน
Chris Page

ดูเพิ่มเติมsuperuser.com/a/576357
LHF

10

/usr/X11/bin/resizeใช้

resize -s 30 80 จะให้ 30 แถว 80 คอลัมน์

resize -s 30 0 จะให้ 30 แถวและคอลัมน์เต็ม

resize -s 0 80 จะให้แถวเต็มกับ 80 คอลัมน์


1
โซลูชันนี้ไม่ จำกัด เฉพาะ MacOS มันเป็นแบบเทอร์มินัลดังนั้นจึงควรทำงานกับเทอร์มินัลทั้งหมด ฉันใช้สิ่งนี้เพื่อปรับขนาด PuTTY windows บน Windows ที่ใช้เชลล์ bash ด้วย TERM = xterm
DrStrangepork

4
ดูเหมือนจะใช้งานไม่ได้กับ Yosemite ใน iterm2
Jistanidiot

สิ่งนี้ใช้ได้สำหรับฉันกับ Apple Terminal แต่ไม่ใช่ iTerm2 อย่างไรก็ตามการส่ง escape sequence \ e [8; 24; 80t ใช้ได้กับทั้งคู่
TextGeek

1
@KrishenGreenwell อ้างถึงเอกสาร iTerm2 โดยค่าเริ่มต้นจะไม่สนใจลำดับการควบคุมเหล่านี้ มีการตั้งค่าเพื่อควบคุมว่าพวกเขาจะถูกละเว้น
Chris Page

1
โซลูชันนี้ใช้งานได้ แต่ฉันคิดว่าคำสั่ง X11 หายไป อาจจะสามารถติดตั้งได้โดยการติดตั้ง X11 แต่ฉันไม่ต้องการติดตั้ง X11 เพื่อให้มีคำสั่งปรับขนาด
Gabriel

-2

จริงๆแล้วคุณรู้การย้ายหน้าต่างปรับขนาดด้วยเมาส์ช้าอย่างน่ากลัว

ฉันใช้แอพนี้SizeUpมานานแล้ว โดยทั่วไปจะปรับขนาดหน้าต่างแอปพลิเคชันใด ๆ โดยใช้คำสั่งแป้นพิมพ์ของคุณ

คุณสามารถทำสิ่งต่อไปนี้ (คำสั่งแป้นพิมพ์แบบกำหนดเองด้านล่าง):

  • ทำให้หน้าต่างเต็มหน้าจอ ( control+ option+ command+ m)
  • ย้ายหน้าต่าง 1/2 ขนาดหน้าจอไปทางซ้ายหรือขวา ( control+ option+ command+ / )
  • ย้ายหน้าต่างขนาดหน้าจอ 1/4 ไปที่มุมใดก็ได้ ( control+ option+ shift+ / / / )
  • ย้ายหน้าต่างระหว่างหน้าจอ
  • ย้ายหน้าต่างระหว่างช่องว่าง

ฉันคิดว่านี่อาจเป็นการหลอกลวงและช่วยในการจัดการหน้าต่างอื่น ๆ


แม้ว่าจะมีประโยชน์ แต่สิ่งนี้ไม่ได้ตอบคำถามที่ผู้ถามถาม
Andrew Ferrier
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.