Tăng / Giảm kích thước phông chữ trong iTerm2


31

Vấn đề: Tôi sử dụng máy tính xách tay khi đang di chuyển và kết nối với màn hình ngoài khi ở văn phòng. Vì màn hình ngoài rất lớn, tôi cần tăng phông chữ trong iTerm2cửa sổ hiện có (thường là một) và tất cả các tab.
Giải pháp thay thế: Tôi mở rộng phông chữ lên 2-4 lần (bằng cách nhấn Cmd-+) cho mỗi tab tôi đã mở trong một cửa sổ (thường chỉ là một).

Câu hỏi: Có cách nào dễ dàng để tôi có thể tự động tăng / giảm kích thước phông chữ cho tất cả các tab của cửa sổ hiện tại không? Hoặc Nếu tôi tạo hai hồ sơ riêng biệt, tôi có thể dễ dàng áp dụng một số cấu hình cho tất cả các tab hiện đang mở trong một cửa sổ không?

Câu trả lời:


25

Có một cách thực sự tồi tệ và lỗi để tự động hóa việc này, nhưng dù sao tôi cũng sẽ đăng nó.

Bạn có thể tạo một hồ sơ mới trong tùy chọn của iTerm2 (khung Hồ sơ). Hãy gọi nó là "LargeFont". Bạn có thể sao chép nó từ cái mặc định bằng cách nhấn = .

Đặt kích thước phông chữ bạn muốn nó hiển thị trong khung Văn bản của cấu hình vừa tạo.

Bây giờ đây là mẹo. Bạn không thể thay đổi kích thước phông chữ hoặc cấu hình của các phiên cuối bằng AppleScript (ít nhất là tôi chưa tìm thấy cách nào), nhưng bạn có thể thực thi các lệnh trong mỗi phiên bằng AppleScript và có một chuỗi thoát tùy chỉnh trong iTerm2. hỗ trợ thay đổi cấu hình cho phiên mà nó đã được đăng echo.

Vì vậy, bạn có thể thực hiện điều đó:

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

trong mỗi phiên mở để thay đổi cấu hình của thiết bị đầu cuối thành "LargeText".

Bây giờ chúng tôi có thể sử dụng AppleScript để tự động hóa việc thực thi cho tất cả các phiên đã mở:

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

Xin lưu ý rằng nó chỉ ghi văn bản (theo nghĩa đen) vào mỗi phiên, vì vậy nếu bạn có một số trình soạn thảo văn bản được mở trong một trong các tab của mình - nó sẽ không hoạt động trong đó và sẽ dán lệnh echo vào tệp mã / cấu hình của bạn thay thế. Nếu bạn có lệnh ping chạy trong một trong các tab - nó cũng không hoạt động.
Bạn nên chắc chắn rằng không có công cụ tương tác nào chạy trong bất kỳ hệ vỏ nào của bạn.

Bạn cũng sẽ có những lệnh này trong lịch sử shell của bạn. Bạn có thể bỏ qua nó bằng cách thêm một khoảng trắng trước lệnh (như echo -e ...), điều này hoạt động ít nhất là trong zsh.

Đây là chức năng 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"
}

Vì vậy, bạn có thể sử dụng nó như thế:

iterm_change_profile LargeFont

Cũng có một nhược điểm - khi bạn thay đổi cấu hình từ phông chữ lớn hơn sang phông chữ nhỏ hơn, cửa sổ của iTerm sẽ thay đổi đáng kể.

Nhưng, một lần nữa, đó là một cách thực sự tồi tệ.


Cảm ơn bạn, tôi sẽ thử. Một điều tương tự tôi muốn trong iTerm2 là thay đổi cả Preset màu (Solarized-Dark và Solarized-Light tùy thuộc vào ánh sáng xung quanh). Tôi giả sử tôi sẽ tạo một hồ sơ riêng cho điều đó là tốt.
van

1
Cảm ơn, @Igor. Nó hoạt động độc đáo, mặc dù như bạn đã đề cập, nó không phải là cách sạch nhất. Và bạn có thể bỏ chọn tùy chọn tăng / giảm cửa sổ để thay đổi kích thước khi kích thước phông chữ thay đổi trong Tùy chọn chung -> "Điều chỉnh cửa sổ khi thay đổi kích thước phông chữ".
van

@van Haha, tôi hoàn toàn bỏ lỡ lựa chọn đó, cảm ơn!
Igor Hatarist 20/2/2015

chỉ cần tìm ra một điều khác: nếu tôi sử dụng TmuxIntegration , việc thay đổi kích thước phông chữ hoạt động trên tất cả các Tab (cửa sổ / cửa sổ tmux). Màu sắc vẫn chỉ là mỗi khung mặc dù.
van
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.