Buộc màn hình GNU phải chỉnh lại chiều rộng của thiết bị đầu cuối hiện tại trên reattach?


32

Tôi muốn buộc màn hình GNU hiển thị lại độ rộng của thiết bị đầu cuối hiện tại khi tôi gắn lại một phiên. Dường như với tôi điều này đã hoạt động đúng trước khi tôi nâng cấp máy lên CentOS 6, nhưng tôi không thể tìm ra cách khôi phục nó. ( TERM=xterm)

Bất cứ khi nào tôi gắn lại một phiên, bất kể trạng thái khi tôi tách nó, nó sẽ khởi chạy ở 80 cột, thay đổi kích thước thiết bị đầu cuối của tôi (PuTTY, trong trường hợp này) cùng với nó.

Tôi đang khởi chạy và gắn lại với:

screen -aA -R <session>

.Screenrc của tôi chỉ chứa các phần sau và một vài ràng buộc khóa không liên quan:

term xterm

defscrollback 10000

# status line at the bottom
hardstatus on
hardstatus alwayslastline
hardstatus string "${-}%{.0c}%-w%{.y0}%f%n %t%{-}%+w %=%{..G}[%H] %{..Y} %D %M %d, %Y %c | Load: %l"
caption splitonly "%{.yK}%3n t"
caption string "%{.c0}%3n %t"

vbell off

# Fix fullscreen programs
altscreen on

Bạn có thể gặp may mắn hơn tmux, tôi có thể tự động thay đổi kích thước cửa sổ Terminal của mình và tmux bên trong sẽ theo sau.
số

Câu trả lời:


38

sau khi bạn gắn lại lệnh ctrl-a Fchạy lệnh "fit" để thay đổi kích thước cửa sổ hiện tại. Nếu bạn gắn lại bằng cách sử dụng -Atùy chọn, nó sẽ thay đổi kích thước tất cả các cửa sổ khi bạn gắn lại. Có những người khác vẫn gắn liền với phiên màn hình khi bạn đang đính kèm? Chẳng hạn, bạn có phải sử dụng -x để reattach thay vì -r không? bạn có thể tách người khác khi bạn gắn lại với "screen -D -r" thay vì "screen -x" và tôi hy vọng điều này sẽ tự động chỉnh lại các cửa sổ.


Tôi sẽ khởi chạy cùng -a -A, và không có ai khác được đính kèm.
Michael

1
Đây vẫn là một vấn đề với màn hình thông qua Ubuntu 14.04. Fit không hoạt động. Ngắt kết nối và kết nối lại. Màn hình 4.2.1 có sẵn từ các backport đáng tin cậy . Xem tài liệu về backport của người dùng để biết thông tin về việc bật và sử dụng các gói từ kho lưu trữ backports.
Greg Bell

1
Ngay cả sau khi làm điều này, tôi đã phải thay đổi kích thước cửa sổ đầu cuối của mình để gửi bất kỳ tín hiệu screennào cần thiết để thực sự thay đổi kích thước.
krs013

Những lo lắng này không làm việc cho tôi, có lẽ vì tôi đang sử dụng một thiết bị đầu cuối khác (iTerm2 trên Mac). Fit không hoạt động, vì vậy tôi đã tách ra và gắn lại bằng cách sử dụng screen -D -rvà thậm chí đã thử thay đổi kích thước cửa sổ, nhưng nó vẫn giữ nguyên. Khi ở Vim, tôi có thể thấy nó columnsđã được đặt thành 204.
haridsv

màn hình -D -r làm việc cho tôi sau khi thử tất cả các tùy chọn khác, như bạn nói Stew - màn hình của tôi vẫn hiển thị như được đính kèm khi tôi chạy màn hình -ls
Hayden Crocker

8

Lưu ý rằng câu trả lời này chỉ áp dụng cho PuTTY. Tôi cũng bị buộc phải sử dụng một hệ điều hành mà tôi không muốn, và PuTTY là lựa chọn thực sự duy nhất do các hạn chế khác trên hệ thống. Tôi gặp vấn đề tương tự, màn hình của tôi sẽ thay đổi kích thước khi bắt đầu hoặc kết nối với phiên màn hình hiện có. Tôi đã thử các câu trả lời ở đây nhưng không có kết quả (Windows 10 với PuTTY 0.67 được cài đặt qua MSI). Những câu trả lời này có thể đã hoạt động với thiết bị đầu cuối UN * X tiêu chuẩn, nhưng không phải với PuTTY, đó là một con thú khác.

Tôi đã đi sâu vào các tùy chọn, và lo và xem trong "Terminal -> Tính năng" có một tùy chọn có nhãn "Tắt thay đổi kích thước thiết bị đầu cuối được điều khiển từ xa". Chọn hộp, áp dụng cài đặt và thử lại màn hình. Tôi nghĩ bạn sẽ tìm thấy vấn đề được giải quyết.


KiTTY là một thay thế thả xuống tốt hơn nhiều cho PuTTY trên hệ điều hành mà bạn buộc phải sử dụng ...
Anubioz

5

Hãy thử thêm phần này (từ / etc / screenrc) vào ~ / .screenrc:

# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E>
# (This fixes the "Aborted because of window size change" konsole symptoms found
#  in bug #134198)
termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'

https://superuser.com/a/217281/6593


1
Trong MPutty, điều này chắc chắn sẽ giải quyết phiên putty không lấp đầy toàn bộ trang nhưng mở quá nhỏ
Thomas8
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.