Input terminal tidak terbungkus dengan benar, atau tidak sama sekali

15

Untuk sementara waktu sekarang, saya mengalami masalah persisten pada semua terminal saya, dari default gnome dan tilda yang saya gunakan sampai yang baru saja saya berikan pusaran cepat, di mana input saya akan menimpa awal dari jalurnya sendiri ketika seharusnya bungkus, dan hanya membungkus pada baris berikutnya.

Menekan Ctrl-A untuk kembali ke awal baris sebagai gantinya akan mengembalikan saya di suatu tempat di baris sebelum baris input pertama saya, dari mana input lagi hanya menjadi sangat aneh.

Karena ini adalah penjelasan yang sangat buruk dan sulit untuk divisualisasikan, berikut tampilannya:

Screencap: tes pembungkus garis

Adakah yang tahu apa ini? Itu tidak hanya terjadi dalam keadaan tertentu, itu adalah hal yang permanen yang selalu ada dari awal hingga akhir setiap sesi di setiap emulator terminal.

Output dari printf "%s\n" "$PS1" "$COLUMNS":

leod:~$ printf "%s\n" "$PS1" "$COLUMNS"
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ 
80

Output dari stty -a:

leod:~$ stty -a
speed 38400 baud; rows 11; columns 140; 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; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar 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 -flusho -extproc
Leod
sumber
3
printf "%s\n" "$PS1" "$COLUMNS"Tolong tambahkan output dari .
muru
Bisa jadi program Anda testmeninggalkan terminal dalam keadaan tidak stabil. Jika itu skrip, bisakah Anda memasukkannya ke dalam pertanyaan Anda? Apa yang terjadi jika Anda mulai mengetik tanpa berjalan testterlebih dahulu, apakah pembungkus teks normal?
WinEunuuchs2Unix
1
Bisakah kita melihat hasilnya stty -ajuga?
steeldriver
1
@ WinEunuuchs2Unix salah tes (dimaksudkan pun). Coba type -a testsaja.
muru
1
Apa output dari printf "%q\n" "$PS1"? Mungkin ada urutan melarikan diri mentah di dalam PS1, dan %smembiarkannya utuh (yang misalnya mengubah warna bolak-balik yang tetap tidak diperhatikan dalam output). %qmengutip setiap karakter yang tidak dapat dicetak dengan cara yang dapat dibaca.
egmont

Jawaban:

7

Mungkin saja terminal Anda tidak mengenali ukuran jendela dengan benar. Saya menemukan pertanyaan terkait di U&L Stackexchange , dan seseorang menyarankan cara di bawah ini untuk memeriksa apakah ini yang terjadi:

Tipe

shopt | grep checkwinsize

Jika output tidak:

checkwinsize    on

Kamu bisa memakai

shopt -s checkwinsize

mengaktifkan. Untuk menonaktifkan:shopt -u checkwinsize

Hee Jin
sumber
1
Mungkin saya tidak cukup menguji tetapi saya checkwinsizesudah on. Saya dulu shopt -u checkwinsizemematikannya dan terminal saya masih membungkus teks dengan benar. Saya tidak yakin apakah jawaban ini benar-benar menyelesaikan masalah OP.
WinEunuuchs2Unix
Cemerlang. Ini adalah perbaikan yang saya butuhkan. Bungkus baris perintah berfungsi dengan baik sekarang di lebih dari 80 karakter.
Randy
@Randy Senang mendengarnya bekerja untuk Anda!
Hee Jin