Perintah membungkus garis yang sama setelah 80 karakter


8

Saya memiliki masalah yang mengganggu dengan minicom yang terhubung ke konsol serial ke mesin Yocto Linux.

Perintah yang saya masukkan membungkus di baris yang sama setelah karakter ke-80. Ini menjadi sangat tidak nyaman untuk dikerjakan. Semua yang saya masukkan di awal baris akan ditimpa oleh karakter terakhir dari baris itu.

Koneksi SSH ke mesin yang sama berfungsi dengan baik. Setelah karakter ke-80 ssh pergi ke baris berikutnya.

Ini adalah pengaturan 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

Opsi -w dari minicom tidak berpengaruh. Masih perilaku yang sama

minicom -w

The resizeperintah ini tidak tersedia pada mesin itu. Paket mana yang termasuk di dalamnya? Mungkin saya bisa menginstalnya.

Bagaimana saya bisa memperbaiki perilaku itu?


Apa TERMvariabel lingkungan saat terhubung melalui minicom?
tumbang

echo $ TERM xterm
Oliver G.

tampilkan keluaran stty -adieksekusi di dalamminicom
Arkadiusz Drabczyk

Apakah berlari minicomdengan -wbantuan?
Arkadiusz Drabczyk

Jika saya menggunakan puttybukannya minicomsebagai program terminal serial dan mengaktifkan pengaturan terminal "LF implisit dalam setiap CR" perilaku itu hilang.
Oliver G.

Jawaban:


4

Ketika Anda terhubung melalui garis serial, tidak ada cara bagi sistem untuk menegosiasikan ukuran jendela dengan terminal (NAWS - Negosiasi Tentang Ukuran Jendela adalah RFC 1073 ). Dalam hal ini Anda bisa mendapatkan standar sistem untuk ukuran, atau bahkan hanya nol. Entah akan membingungkan editor baris shell, yang perlu mengetahui lebar sebenarnya terminal untuk bekerja dengan fitur sampulnya.

bash menjadi bingung, berpikir itu telah dibungkus karena fitur autowrap terminal dan pindah ke awal baris saat ini (salah) sebagai bagian dari pengeditan / tampilan baris.

Sebagai solusinya, sebagian besar terminal (termasuk minicom - lihat sumber ) yang akan Anda gunakan dengan antarmuka serial dapat menanggapi urutan laporan posisi kursor yang digunakan resizeuntuk menemukan ukuran jendela - dan sebagai efek samping, set ide sistem untuk seberapa besar jendela terminal Anda.


1
Saya masih ingin tahu mengapa itu membungkus di baris yang sama, bukannya ke baris berikutnya.
dirkt

3

Ini berhasil untuk saya. Shell target harus diatur untuk memeriksa ukuran jendela dan diatur ke ukuran yang benar dari konsol gui Anda. Setelah terhubung melalui serial dengan dempul atau minicom:

shopt -s checkwinsize
resize

Ini sepertinya berhasil bagi saya tetapi tidak jelas bagaimana ini dilakukan atau bagaimana menerapkannya sebagai aturan umum.
TheMeaningfulEngineer

Tambahkan ini ke .bashrc Anda pada target: "shopt -s checkwinsize" dan "eval` resize`"
Mark Inderhees
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.