เพิ่ม / ลดขนาดตัวอักษรใน iTerm2


31

ปัญหา: ฉันใช้แล็ปท็อปขณะเดินทางและเชื่อมต่อกับจอภาพภายนอกเมื่ออยู่ในสำนักงาน เนื่องจากจอภาพภายนอกมีขนาดใหญ่มากฉันต้องเพิ่มแบบอักษรในiTerm2หน้าต่างที่มีอยู่(โดยปกติจะเป็นหนึ่ง) และแท็บทั้งหมด
วิธีแก้ปัญหา: ฉันเพิ่มขนาดตัวอักษรขึ้น 2-4 เท่า (โดยการกดCmd-+) สำหรับทุกแท็บที่ฉันเปิดในหน้าต่าง (โดยปกติจะเป็นเพียงหนึ่ง)

คำถาม:มีวิธีง่าย ๆ ที่ฉันสามารถเพิ่ม / ลดขนาดแบบอักษรสำหรับแท็บทั้งหมดของหน้าต่างปัจจุบันโดยอัตโนมัติหรือไม่? หรือถ้าฉันจะสร้างสองโปรไฟล์แยกกันฉันสามารถนำโปรไฟล์ไปใช้กับแท็บที่เปิดอยู่ทั้งหมดในหน้าต่างได้หรือไม่?

คำตอบ:


25

มีวิธีที่อึและเป็นบักกี้จริงๆในการทำสิ่งนี้โดยอัตโนมัติ แต่ฉันจะโพสต์ไว้

คุณสามารถสร้างโปรไฟล์ใหม่ได้ในการตั้งค่าของ iTerm2 (บานหน้าต่างโปรไฟล์) ลองเรียกมันว่า "LargeFont" คุณสามารถโคลนได้จากหนึ่งเริ่มต้นโดยการกด =

กำหนดขนาดตัวอักษรที่คุณต้องการให้แสดงในบานหน้าต่างข้อความของโปรไฟล์ที่สร้างขึ้นใหม่

นี่คือเคล็ดลับ คุณไม่สามารถเปลี่ยนขนาดตัวอักษรหรือโพรไฟล์ของเทอร์มินัลเซสชันโดยใช้ AppleScript (อย่างน้อยฉันไม่พบวิธี) แต่คุณสามารถดำเนินการคำสั่งในทุกเซสชันโดยใช้ AppleScript และมีลำดับการหลบหนีที่กำหนดเองใน iTerm2 รองรับการเปลี่ยนโปรไฟล์สำหรับเซสชั่นมันecho'ed in

ดังนั้นคุณสามารถดำเนินการได้:

echo -e "\033]50;SetProfile=LargeFont\a"

ในทุกเซสชันที่เปิดเพื่อเปลี่ยนโปรไฟล์ของเทอร์มินัลเป็น "LargeText"

ตอนนี้เราสามารถใช้ AppleScript เพื่อดำเนินการอัตโนมัติสำหรับเซสชันที่เปิดอยู่ทั้งหมด:

tell application "iTerm"
    repeat with theTerminal in terminals
        tell theTerminal
            repeat with theSession in sessions
                tell theSession
                    write text "echo -e '\\033]50;SetProfile=LargeText\\a'"
                end tell
            end repeat
        end tell
    end repeat
end tell

โปรดทราบว่ามันเป็นเพียงการเขียนข้อความ (ตัวอักษร) ลงในแต่ละเซสชั่นดังนั้นหากคุณมีโปรแกรมแก้ไขข้อความบางอย่างเปิดในแท็บของคุณ - มันจะไม่ทำงานในมันและจะวางคำสั่ง echo ในรหัส / ไฟล์การกำหนดค่าของคุณ แทน. หากคุณมีคำสั่ง ping ทำงานอยู่ในแท็บใดแท็บหนึ่งมันจะไม่ทำงานเช่นกัน
คุณควรตรวจสอบให้แน่ใจว่าไม่มีสิ่งโต้ตอบที่ทำงานอยู่ในเปลือกหอยของคุณ

คุณจะมีคำสั่งเหล่านี้ทิ้งไว้ในประวัติของเชลล์ คุณสามารถข้ามมันได้โดยการเพิ่มช่องว่างหน้าคำสั่ง (เช่นecho -e ...) ตัวนี้ทำงานได้อย่างน้อยใน zsh

นี่คือฟังก์ชัน zsh:

function iterm_change_profile() {
    osascript -e "
        tell application \"iTerm\"
            repeat with theTerminal in terminals
                tell theTerminal
                    repeat with theSession in sessions
                        tell theSession
                            write text \" echo -e \\\"\\\\033]50;SetProfile=$1\\\\a\\\"\"
                        end tell
                    end repeat
                end tell
            end repeat
        end tell"
}

ดังนั้นคุณสามารถใช้มันได้

iterm_change_profile LargeFont

นอกจากนี้ยังมีข้อเสียเปรียบ - เมื่อคุณเปลี่ยนโปรไฟล์จากอันที่มีฟอนต์ขนาดใหญ่เป็นขนาดเล็กหน้าต่างของ iTerm จะปรับขนาดอย่างมีนัยสำคัญ

แต่อีกครั้งมันเป็นวิธีที่น่ารังเกียจจริงๆ


ขอบคุณฉันจะลอง สิ่งที่คล้ายกันที่ฉันต้องการใน iTerm2 ก็คือการเปลี่ยน Color Preset (Solarized-Dark และ Solarized-Light ขึ้นอยู่กับแสงโดยรอบ) ฉันถือว่าฉันจะสร้างโปรไฟล์แยกต่างหากสำหรับสิ่งนั้นเช่นกัน
รถตู้

1
ขอบคุณ @Igor มันทำงานได้ดีแม้ว่าคุณจะพูดถึงมันไม่ใช่วิธีที่สะอาดที่สุด และคุณสามารถยกเลิกการเลือกตัวเลือกเพื่อเพิ่ม / ลดขนาดหน้าต่างเพื่อปรับขนาดเมื่อขนาดตัวอักษรมีการเปลี่ยนแปลงในการตั้งค่าทั่วไป -> "ปรับหน้าต่างเมื่อเปลี่ยนขนาดตัวอักษร"
รถตู้

@ วานฮ่าฮ่าฉันพลาดตัวเลือกทั้งหมดไปแล้วขอบคุณ!
Igor Hatarist

เพิ่งค้นพบสิ่งอื่น: ถ้าฉันใช้TmuxIntegrationการเปลี่ยนขนาดตัวอักษรใช้งานได้ในทุกแท็บ (หน้าต่าง tmux / บานหน้าต่าง) สียังคงเป็นเพียงแค่ต่อบานหน้าต่าง
รถตู้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.