Hầu hết các trình giả lập thiết bị đầu cuối đều có thể lưu và khôi phục nội dung của màn hình.
Mã số terminfo cho điều này là smcup
để vào chế độ toàn màn hình và rmcup
để thoát. (Các mã termcap cũ là ti
và te
.)
Nếu những khả năng này được kích hoạt trong cơ sở dữ liệu terminfo
, bất kỳ chương trình có sử dụng ncurses
sẽ in ra chuỗi smcup
về nhập cảnh, và rmcup
chuỗi trên lối ra.
Trên hệ thống Tôi đang sử dụng tại thời điểm này, các dây là (với \E
đại diện cho Escape character):
smcup: \E7\E[?1;47h
rmcup: \E[2J\E[?1;47l\E8
này khôi phục các nội dung trước của màn hình cũng như vị trí con trỏ.
Nghĩa cụ thể của chuỗi (ví xterm) là documented here:
- smcup:
\E7
Lưu Cursor
\E[?1;47h
Application Cursor phím; Sử dụng màn hình thay thế đệm
- rmcup:
\E[2J
màn hình Erase
\E[?1;47l
Application Cursor phím; Sử dụng bình thường Màn hình Buffer
\E8
Restore Cursor
(Điều này giả định tôi đang tìm hiểu việc sử dụng các dấu chấm phẩy đúng;. Tôi không chắc chắn về điều đó 100%)
Nguồn
2015-07-22 23:05:26
Đã học được điều gì đó mới mẻ. Điều này giải thích rất nhiều; cảm ơn bạn. – Qix
Cài đặt ứng dụng con trỏ-phím bình thường không được thực hiện trong smcup/rmcup - hầu hết các chương trình giả định nó được thực hiện trong chuỗi khởi tạo (is2). Xem ví dụ [putty] (http://invisible-island.net/ncurses/terminfo.src.html#tic-putty) trong cơ sở dữ liệu đầu cuối ncurses. Và tất nhiên, chế độ 47 từ lâu đã lỗi thời với xterm (kể từ [1998] (http://invisible-island.net/xterm/xterm.log.html#xterm_90)). –
@ThomasDickey: Rõ ràng các mục termcap/terminfo của tôi đã lỗi thời (điều này không đáng ngạc nhiên). Cảm ơn vì thông tin. Tôi sẽ làm một số nghiên cứu và cập nhật câu trả lời của tôi Real Soon Now. –