หน้าจอตัดการเริ่มต้นของคำสั่งแบบยาวเมื่อเข้าถึงผ่านประวัติทุบตี


9

ฉันใช้ทุบตีและหน้าจอเริ่มต้นใน OS X Lion

เมื่อฉันอยู่ในเซสชั่นหน้าจอและฉันเลื่อนกลับไปที่ประวัติทุบตีและฉันมาถึงคำสั่งที่ยาวพอที่จะห่อ

ฉันอาจพิมพ์คำสั่งแรก:

selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/

ที่ห่ออย่างถูกต้องตามที่เขียนไว้ข้างต้น แต่ถ้าฉันกดขึ้นเพื่อเข้าถึงผ่านประวัติของทุบตีคอนโซลจะแสดงเฉพาะ:

83279836214c0.144847759343/

ดังนั้นพรอมต์และบรรทัดแรกของคำสั่งจึงหายไปซึ่งทำให้ยากต่อการแก้ไข หากฉันเลื่อนกลับไปที่บรรทัดแรกมันจะปรากฏขึ้น แต่จะเขียนทับบรรทัดสุดท้ายของเอาต์พุต เมื่อฉันรันคำสั่งส่วนที่เหลือของบรรทัดแรกจะปรากฏขึ้นและทุกอย่างดูเป็นไปตามที่คาดไว้:

selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/
total 1792
...
selassid@tem02:~$ 

มีอะไรอยากรู้มากกว่านี้คือถ้าใช้ประวัติเพื่อเข้าถึงคำสั่งแบบยาว แต่ฉันยังไม่ได้รันมันให้ใช้C-aคำสั่งหน้าจอใด ๆเช่นสลับไปที่หน้าต่างอื่นแล้วย้อนกลับหรือถ้าฉันคลิกหน้าต่างเทอร์มินัลปัจจุบันของฉัน กลับเข้ามามันคำสั่งประวัติศาสตร์จะปรากฏขึ้นอย่างถูกต้องอีกครั้ง

ของฉันPS1='\u@\h:\w$ 'ดังนั้นจึงไม่มีอะไรแปลกเกิดขึ้นที่นั่น

มีวิธีแสดงคำสั่งทั้งหมดอย่างถูกต้องเมื่อใช้ประวัติหรือไม่ ฉันได้ลองเล่นโดยใช้การตั้งค่าการห่อหน้าจอ แต่มันก็ทำให้สิ่งต่าง ๆ แย่ลงเท่านั้น

stty -a แสดงให้เห็นว่า:

speed 9600 baud; 46 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
    -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
    -extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
    -ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
    -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
    eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
    min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
    stop = ^S; susp = ^Z; time = 0; werase = ^W;

คุณสามารถทำเสียงก้อง $ TERM เมื่ออยู่ภายในหน้าจอและส่งออกได้หรือไม่ นอกจากนี้หากคุณใช้ tput น echo $ คุณได้อะไร
Patrick

TERMเป็นxterm-256colorและtput am; echo $?เพียงแค่ให้ฉัน 0.
selassid

นอกจากนี้จะเกิดขึ้นเมื่อคุณเลื่อนดูประวัติที่ด้านล่างของหน้าต่างดังนั้นข้อความทั้งหมดจะต้องเลื่อนขึ้นเพื่อแสดงบรรทัดที่สองของคำสั่งในประวัติของคุณ
selassid

ผลลัพธ์ของstty -aอะไร
Andy Smith

ฉันได้เพิ่มไปที่ด้านล่างของโพสต์ มันตรงกับสิ่งที่เอาท์พุทเมื่อหน้าจอไม่ได้ทำงาน
selassid

คำตอบ:


1

จากคำตอบของความคิดเห็นที่กล่าวมาข้างต้นดูเหมือนว่าคุณกำลังเอาชนะ TERM ในสคริปต์เริ่มต้นของคุณ ขณะที่อยู่ภายในหน้าจอ TERM ของคุณควรตั้งค่าเป็น 'หน้าจอ' ไม่ใช่ 'xterm-256color'

ฉันจะดูสคริปต์เริ่มต้นเชลล์ของคุณ ~ / .bashrc, / etc / bash / bashrc และอื่น ๆ เช่น ~ / .bash_profile และ / etc / profile ขึ้นอยู่กับว่าคุณตั้งค่าทุกอย่างอย่างไร หากคุณเห็นการตั้งค่า TERM = "... " คุณจะต้องลบการตั้งค่าเหล่านั้น


นั่นเป็นความจริง แต่แม้หลังจากลบออกแล้วและการตรวจสอบว่า TERM นั้นเป็น "หน้าจอ" ด้านในของหน้าจอก็ยังไม่สามารถแก้ไขปัญหาได้
selassid

คุณมี ~ / .inputrc หรือ / etc / inputrc หรือไม่ ถ้าเป็นเช่นนั้นตรวจสอบให้แน่ใจว่าไม่ได้ตั้งโหมดแนวนอนหรือตั้งเป็นปิด
Patrick

ฉันมี ~ / .inputrc แต่ไม่ได้ตั้งโหมดแนวนอนเลื่อนและการตั้งค่าเป็นปิดไม่เปลี่ยนพฤติกรรม ฉันมี input-meta และ output-meta on และ convert-meta off แต่การลบการตั้งค่าเหล่านั้นไม่ได้เปลี่ยนพฤติกรรม
selassid
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.