Làm cách nào để ngăn chặn lệnh HP-UX, ít hơn, làm rối tung lời nhắc của tôi?


8

Tôi không thích đầu ra của moreHP-UX, vì vậy tôi sử dụng lessthay cho máy nhắn tin:

PAGER=less

Đầu ra của nó rất đẹp, nhưng, trên Linux, khi tôi sử dụng manvà sau đó thoát ra, tôi quay lại trình bao và màn hình hiển thị giống như cách tôi rời khỏi nó, nhưng trên HP-UX, khi tôi quay lại trình bao, ở đó là một dòng một phần còn lại trước dấu nhắc, giống như lệnh sau tạo ra:

echo -e "text \c"

Nhìn vào cái này

  • trên HP-UX:

    user@hpux2:~$ man ls
    Riformattazione in corso. Attendere...user@hpux2:~$
    

(thông báo bằng tiếng Ý có nghĩa là "Định dạng lại đang diễn ra, vui lòng đợi")

  • trên Linux:

    user@linux:~$ man ls
    user@linux:~$
    

Làm thế nào để giải quyết vấn đề này?


Bạn có bỏ thuốc bằng cách cho qhoặc sử dụng CTRL+C. Tôi có một máy HPUX và nó dường như quay trở lại dòng mới (tương tự như linux) nếu tôi cho qhoặc CTRL+C. Tôi có EDITOR=vitrong các biến môi trường của tôi.
rahul

Tất nhiên, q, tôi có EDITOR = vim, tôi cũng thử EDITOR = vi nhưng không có gì thay đổi
elbarna

Câu trả lời:


1

Việc hoán đổi màn hình được thực hiện với mã điều khiển đầu cuối. Các mã này được ghi lại dưới đây terminfo(5). Hai liên quan đến tiết kiệm / khôi phục màn hình thường smcuprmcup. Cái đầu tiên bật chế độ địa chỉ con trỏ đặc biệt của thiết bị đầu cuối (sm = "set mode") và cái thứ hai tắt nó đi. Thông thường, hai cái này sẽ lưu màn hình và khôi phục nó.

Nếu khôi phục màn hình không hoạt động, có thể các mục đó không chính xác cho loại thiết bị đầu cuối của bạn. Bạn có thể in nội dung của mục terminfo hiện tại bằng infocmplệnh. Bạn sẽ cần xem xét các mục đó ( smcuprmcup) và so sánh các chuỗi thoát với hướng dẫn thiết bị đầu cuối của bạn để xác định những gì chúng làm. Điểm lạ là thiết bị đầu cuối của bạn chỉ khác một chút so với dự kiến ​​của mục terminfo.


Có lẽ có một số lỗi với hpux xterm, sử dụng dtterm làm thiết bị đầu cuối cũng hoạt động tốt cho con người
elbarna

Đó là một khả năng. Đôi khi, một trình giả lập thiết bị đầu cuối sẽ tuyên bố là "tương thích và tương tự" nhưng bỏ qua mọi thứ. Khi hệ thống xác định loại thiết bị đầu cuối là "tương tự", màn hình sẽ bị rối. Cũng có thể là xterm của HP có giá trị đặc biệt được sử dụng cho TERM và nó không được đặt đúng (có thể cấu hình thay đổi nó?).
Azhrei

2

Tính năng được đề cập là màn hình thay thế của xterm được giới thiệu trong X.V10R4 (tháng 12 năm 1986). Mặc dù tính năng này được hỗ trợ, nhưng nó không được thêm vào mô tả thiết bị đầu cuối cho đến X11R6 (khoảng mười năm).

Mô tả thiết bị đầu cuối của HPUX xtermgiống với mô tả X11R5, với một số bổ sung (chủ yếu là các phím chức năng 1-12). Một lần nữa, tính năng (các phím chức năng) đã được chương trình hỗ trợ trong một thời gian, nhưng không được thêm vào mô tả thiết bị đầu cuối.

Đây là những infocmpbáo cáo cho HPUX:

#       Reconstructed via infocmp from file: /usr/share/lib/terminfo/x/xterm
xterm|vs100|xterm terminal emulator,
        am, km, xenl,
        cols#80, lines#65,
        bel=^G, blink=@, bold=\E[1m, civis=\E[?25I,
        clear=\E[H\E[2J, cnorm=\E[?25h, cr=\r,
        csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\b,
        cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
        cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
        cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
        dl1=\E[M, ed=\E[J, el=\E[K, home=\E[1;1H, ht=\t,
        hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
        il1=\E[L, ind=\n, kbs=\177, kcub1=\EOD, kcud1=\EOB,
        kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf10=\E[21~,
        kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR,
        kf4=\EOS, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
        kf8=\E[19~, kf9=\E[20~, knp=\E[6~, kpp=\E[5~, rc=\E8,
        rev=\E[7m, ri=\EM, rmkx=\E[?1l, rmso=\E[m,
        rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H, rs2=@,
        sc=\E7,
        sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
        sgr0=\E[m, smkx=\E[?1h, smso=\E[7m, tbc=\E[3g,

Dưới đây là các liên kết đến tệp X11R6X11R3 (không thay đổi qua X11R5). Tính năng màn hình thay thế trong mô tả thiết bị đầu cuối X11R6 được cung cấp bởi dòng này :

smcup=\E7\E[?47h, rmcup=\E[2J\E[?47l\E8,

Với ncurses (Linux, v.v.), bạn có một mô tả thiết bị đầu cuối muộn hơn nhiều , liệt kê tất cả các tính năng có thể áp dụng.

Đối với HPUX, bạn có thể khắc phục sự cố bằng cách sử dụng tic để biên dịch mô tả thiết bị đầu cuối với tính năng được thêm vào. Nếu bạn có quyền truy cập root trên máy HPUX, điều đó thật đơn giản:

infocmp >foo
vi foo (adding the `smcup` and `rmcup` line)
sudo tic foo

Mặt khác, bạn có thể làm việc xung quanh nó bằng cách đặt TERMINFO environment variable to your own terminfo directory, and runningtic` để biên dịch vào thư mục đó . Cái gì đó như

TERMINFO=$HOME/myterm; export TERMINFO
mkdir -p $TERMINFO/x
tic foo

(bạn cũng sẽ cần TERMINFOthiết lập trong trình bao của mình cho các phiên tiếp theo).

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.