Lệnh kết thúc xung quanh cùng một dòng sau 80 ký tự


8

Tôi gặp một vấn đề khó chịu với minicom được kết nối với bàn điều khiển nối tiếp với máy Yocto Linux.

Lệnh mà tôi nhập kết thúc tốt đẹp trên cùng một dòng sau ký tự thứ 80. Điều này trở nên rất bất tiện khi làm việc với. Tất cả mọi thứ tôi nhập ở đầu dòng đều bị ghi đè bởi các ký tự cuối cùng của dòng đó.

Một kết nối SSH đến cùng một máy hoạt động tốt. Sau 80 ký tự ssh đi đến dòng tiếp theo.

Đây là cài đặt stty:

stty -a
speed 115200 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon ixoff
-iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon -iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

Tùy chọn -w của minicom không có hiệu lực. Vẫn hành vi như vậy.

minicom -w

Các resizelệnh không có sẵn trên máy đó. Nó thuộc về gói nào? Có lẽ tôi có thể cài đặt nó.

Làm thế nào tôi có thể sửa chữa hành vi đó?


Là gì TERMbiến môi trường khi kết nối thông qua minicom?
thrig

echo $ TERM xterm
Oliver G.

hiển thị đầu ra của stty -athực thi bên trongminicom
Arkadiusz Drabchot

Có chạy minicomvới -wsự giúp đỡ?
Arkadiusz Drabchot

Nếu tôi sử dụng puttythay vì minicomlàm chương trình thiết bị đầu cuối nối tiếp và cho phép cài đặt thiết bị đầu cuối "ẩn trong mỗi CR" thì hành vi sẽ biến mất.
Oliver G.

Câu trả lời:


4

Khi bạn được kết nối qua một đường nối tiếp, hệ thống sẽ không có cách nào để thương lượng kích thước cửa sổ với thiết bị đầu cuối (NAWS - Đàm phán về Kích thước cửa sổRFC 1073 ). Trong trường hợp đó, bạn có thể lấy mặc định hệ thống cho kích thước hoặc thậm chí chỉ là số không. Hoặc là sẽ nhầm lẫn trình soạn thảo dòng của shell, cần biết chiều rộng thực tế của thiết bị đầu cuối để làm việc với tính năng bao quanh của nó.

Bash bị nhầm lẫn, nghĩ rằng nó đã bị đóng gói do tính năng autowrap của thiết bị đầu cuối và di chuyển đến đầu dòng (sai) hiện tại như là một phần của chỉnh sửa / hiển thị dòng.

Như một giải pháp thay thế, hầu hết các thiết bị đầu cuối (bao gồm cả minicom - xem nguồn ) mà bạn sẽ sử dụng với giao diện nối tiếp có thể phản hồi trình tự thoát báo cáo vị trí con trỏ được sử dụng resizeđể tìm kích thước cửa sổ - và như một hiệu ứng phụ đặt ra ý tưởng của hệ thống cửa sổ thiết bị đầu cuối của bạn lớn như thế nào


1
Tôi vẫn tò mò tại sao nó lại quấn quanh trên cùng một dòng, thay vì vào dòng tiếp theo.
dirkt

3

Điều này làm việc cho tôi. Shell đích cần được đặt để kiểm tra kích thước cửa sổ và được đặt thành kích thước chính xác của gui console của bạn. Sau khi kết nối qua serial với putty hoặc minicom:

shopt -s checkwinsize
resize

Điều này dường như đã làm việc cho tôi nhưng không rõ làm thế nào điều này được thực hiện hoặc làm thế nào để áp dụng nó như là một quy tắc chung.
TheMeaningfulEngineer

Thêm phần này vào .bashrc của bạn trên mục tiêu: "shopt -s checkwinsize" và "eval` resize`"
Mark Inderhees
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.