Terminal girişi doğru sarılmıyor veya hiç


15

Bir süredir, tüm terminallerimde, her ikisi de kullandığım gnome varsayılanı ve tilda'dan, hızlı bir girdap verdim, girişlerim gerektiğinde kendi hattının başlangıcının üzerine yazacağı bu kalıcı sorunu yaşadım sarın ve yalnızca bir sonraki satıra sarın.

Hattın başlangıcına dönmek için Ctrl-A tuşlarına basmak, ilk giriş satırımdan önce beni hatta bir yere geri döndürecek, daha fazla girişin çok garipleşeceği bir yer.

Bu gerçekten kötü bir açıklama ve görselleştirilmesi zor olduğu için şöyle görünüyor:

Screencap: satır sarma testi

Bunun ne olduğunu bilen var mı? Sadece belirli koşullar altında gerçekleşmez, her terminal emülatöründeki her oturumun başından sonuna kadar her zaman orada olan kalıcı bir şeydir.

Çıktı 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

Çıktı 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

3
Çıktısını ekleyin printf "%s\n" "$PS1" "$COLUMNS", lütfen.
muru

Programınız testterminali dengesiz bir durumda bırakıyor olabilir . Eğer bir senaryo ise bunu sorunuza dahil edebilir misiniz? testİlk önce çalıştırmadan yazmaya başlarsanız metin normal şekilde kaydırılır mı?
WinEunuuchs2Unix

1
Çıktısını da görebilir miyiz stty -alütfen?
steeldriver

1
@ WinEunuuchs2Unix yanlış testi (pun amaçlı). type -a testBunun yerine deneyin .
muru

1
Çıktısı nedir printf "%q\n" "$PS1"? PS1'in içinde ham kaçış dizileri olabilir ve %sonları olduğu gibi bırakır (örneğin çıktıda fark edilmeden kalan rengi ileri geri değiştirebilir). %qyazdırılamayan her karakteri okunabilir bir şekilde tırnak içine alır.
egmont

Yanıtlar:


7

Terminaliniz pencere boyutunu doğru tanımıyor olabilir. U&L Stackexchange'te ilgili bir soru buldum ve biri bunun olup olmadığını kontrol etmenin aşağıdaki yolunu önerdi:

tip

shopt | grep checkwinsize

Çıktı değilse:

checkwinsize    on

Kullanabilirsiniz

shopt -s checkwinsize

etkinleştirmek. Devre dışı bırakmak için:shopt -u checkwinsize


1
Belki yeterince test etmedim ama checkwinsizezaten vardı on. Kullandığım shopt -u checkwinsizekapatmak için ve benim terminali hala metni doğru tamamladı. Bu cevabın OP problemini gerçekten çözüp çözmediğinden emin değilim.
WinEunuuchs2Unix

Parlak. Bu ihtiyacım olan düzeltmedir. Komut satırı kaydırma özelliği, 80 karakterden fazlasıyla mükemmel bir şekilde çalışıyor.
Randy

@Randy Senin için çalıştığını duyduğuma sevindim!
Hee Jin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.