Vấn đề cơ bản là ánh xạ được thực hiện bởi screen
giữa thiết bị đầu cuối thực tế (được xác định bởi TERM
biến môi trường bên ngoài screen
) và mô phỏng bên trong screen
là không đầy đủ.
Nếu bạn tình cờ kiểm tra nó (sử dụng vttest hoặc tack ), bạn có thể nhận thấy thiếu sót cho
- màu sắc
- chìa khóa đặc biệt
Cố gắng sửa chữa những vấn đề này bằng cách thiết lập term
trong .screenrc
có nhược điểm mà nó chỉ hoạt động cho một cho thực tế-thiết bị đầu cuối, và không phải là di động để triển khai thiết bị đầu cuối khác. Các tài liệu ghi chú
Việc sử dụng lệnh hạn không được khuyến khích cho mục đích không mặc định.
Có một giải pháp khác (với một nhược điểm khác), sử dụng tính năng này từ screen
tài liệu :
Khi màn hình cố gắng tự tìm ra một tên thiết bị đầu cuối, đầu tiên nó sẽ tìm một mục có tên là màn hình. hạn , trong đó hạn là nội dung của $TERM
biến của bạn . Nếu không có mục nào như vậy tồn tại, màn hình sẽ thử screen
(hoặc screen-w
, nếu thiết bị đầu cuối rộng (132 cols trở lên)). Nếu thậm chí mục này không thể được tìm thấy, vt100
được sử dụng như là một thay thế.
ncurses cung cấp một số mô tả thiết bị đầu cuối thay thế hữu ích cho trường hợp này, ví dụ: screen.xterm-new , để sửa chữa các vấn đề trong ánh xạ màn hình. Trong thực tế, tôi sử dụng TERM=xterm-new
và khi chạy màn hình, có được một ánh xạ có thể sử dụng các phím chức năng.
Tham khảo lại term
cài đặt của màn hình , trong thử nghiệm, bạn có thể nhận thấy rằng vẫn còn vấn đề với ánh xạ, được giải quyết trong các lựa chọn thay thế này. Nếu có thể có được một mô tả thiết bị đầu cuối chính xác bằng cách sử dụng term
, những lựa chọn thay thế này sẽ là bí danh đơn giản screen
. Họ không phải.
ncurses không cung cấp screen.xterm
(sic) vì:
TERM=xterm
được sử dụng rộng rãi cho các trình giả lập thiết bị đầu cuối khác với xterm; việc thêm ánh xạ này sẽ chỉ làm nặng thêm tình huống đó (xem ví dụ Tại sao không sử dụng TATE được đặt thành "xterm"? trong Câu hỏi thường gặp của ncurses)
- tên thay thế
screen.xterm
ít có khả năng được cài đặt trên các hệ thống từ xa (xem bình luận thay đổi từ tháng 6 năm 2015 trong cơ sở dữ liệu đầu cuối).
Tuy nhiên, về tổng thể, sử dụng tên thay thế là một cải tiến so với việc sử dụng term
trong của bạn .screenrc
: nó giải quyết được nhiều vấn đề hơn so với việc tạo ra. Điều ngược lại là đúng với các term
thiết lập.
term xterm
vào~/.screenrc
tệp của tôi đã sửa nó cho tôi. Cảm ơn một lần nữa!