ฉันใช้ Cygwin bash prompt และสำหรับคำสั่งแบบยาวข้อความจะถูกล้อมรอบในบรรทัดเดียวกันเมื่อเทียบกับการไปที่บรรทัดถัดไปแม้จะตั้งค่า PS1 ของฉันเป็น '$'
นี่คือภาพหน้าจอ

ฉันใช้ Cygwin bash prompt และสำหรับคำสั่งแบบยาวข้อความจะถูกล้อมรอบในบรรทัดเดียวกันเมื่อเทียบกับการไปที่บรรทัดถัดไปแม้จะตั้งค่า PS1 ของฉันเป็น '$'
นี่คือภาพหน้าจอ

คำตอบ:
ฉันใช้ MinTTY อยู่แล้วและการลบบรรทัดใหม่ใน PS1 ก็ไม่ได้ช่วยอะไรเช่นกัน คำแนะนำหนึ่งชิ้นในหน้านี้ช่วยได้ ฉันรันคำสั่ง bash นี้:
kill -WINCH $$
ในกรณีของฉันการเรียกใช้ครั้งนี้แก้ไขปัญหาได้แม้หลังจากออกจากระบบและกลับเข้ามาฉันไม่แน่ใจว่าเป็นเช่นนี้เสมอ
-WINCHนี่เป็นสัญญาณของกระบวนการทุบตีที่หน้าต่างเทอร์มินัลถูกปรับขนาด ดังนั้นควรทำหลังจากปรับขนาดเทอร์มินัลหน้าต่างแต่ละอันฉันเดา
สำหรับฉันทางออกคือการเพิ่มบรรทัดต่อไปนี้เพื่อ. bashrc:
PS1='\[\e[32m\]\u@\h:\W> \[\e[0m\]'
TERM=cygwin
export PS1
export TERM
หมายเหตุว่าตัวละครที่ไม่พิมพ์ในการแจ้งการต้องอยู่ใน
...\[\]
ฉันมีปัญหาเดียวกันกับ MinTTY เช่นกัน ปัญหาอาจมีบางอย่างเกี่ยวกับการพร้อมท์หลัก (PS1)
ทางออกสำหรับฉันคือการลบตัวอักษร 'ขึ้นบรรทัดใหม่' ออกจาก PS1 (ก่อนหน้าเครื่องหมาย '$'):
user@host ~
$ echo $PS1
\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$
user@host ~
$ export PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\$ '
user@host ~ $
ดูhttp://cygwin.com/ml/cygwin/2001-07/msg00140.htmlสำหรับการอ้างอิง
หากต้องการทำการเปลี่ยนแปลงแบบถาวรให้เพิ่มการส่งออก PS1 = '[\ e] 0; \ w \ a] \ n [\ e [32m] \ u @ \ h [\ e [33m] \ w [\ e [0m] 0m $ 'ไปยังไฟล์ ~ / .bashrc ของคุณ
@ jtpereyda คำตอบนั้นแน่นอนในเครื่องหมาย แต่ด้วยเหตุผลบางอย่างฉันไม่สามารถปล่อยมันไปได้และขุดลึกลงไปอีกเล็กน้อย
การขยายความคิดเห็นนี้หากคุณปรับขนาดเทอร์มินัลในขณะที่เป็นกลุ่ม (หรือแอปพลิเคชันแบบเต็มหน้าจออื่น ๆ ที่ควบคุม tty ออกจากเชลล์) ผลลัพธ์SIGWINCHมักจะไม่ถูกส่งไปยังเชลล์ดังนั้นเมื่อได้รับการควบคุมกลับ ไม่ทราบว่าเทอร์มินัลถูกปรับขนาดแล้ว
เมื่อคุณปรับขนาดเทอร์มินัลของคุณควรเรียกใช้ioctl(..., TIOCSWINSZ, ...)บน pty หลักที่ vim กำลังทำงานซึ่งจะส่งผลให้killpg(SIGWINCH)กลุ่มกระบวนการของ vim ทำงาน
ปัญหาคือกลุ่มที่เรียกใช้ในกลุ่มกระบวนการของตัวเองแตกต่างจากเชลล์ที่ถูกเรียกใช้จากดังนั้นเชลล์ bash ไม่ได้รับSIGWINCHและไม่ปรับบรรทัด / คอลัมน์ของมันอย่างเหมาะสม
ถ้าคุณต้องการการแก้ปัญหาแบบถาวรเพิ่มที่คุณshopt -s checkwinsize .bashrcที่ทำให้ทุบตีตรวจสอบขนาดหน้าต่าง ( ioctl(..., TIOCGWINSZ, ..)) หลังจากกลับมาจากแต่ละคำสั่งและปรับปรุงสาย / คอลัมน์
มีบางอย่างผิดปกติในการตั้งค่าเครื่อง (อาจ)
ฉันเดาว่าคุณคงลองออกจากเซสชันนั้นแล้วเริ่มใหม่อีกครั้ง
ในขณะที่คุณไม่ได้รับการแก้ปัญหาสำหรับเทอร์มินัล Cygwin ลองใช้MinTTY (ดีกว่าจริง ๆ )
ตามที่แสดงความคิดเห็นโดยakatakritosคุณอาจปรับขนาดเทอร์มินัลของคุณในขณะที่กลุ่มถูกเปิด
เมื่อสิ่งนี้เกิดขึ้นเพียงแค่ปรับขนาดเทอร์มินัลอีกครั้งและปัญหาจะหายไป
TERMการตั้งค่าตัวแปรสภาพแวดล้อมเพื่อ? สำหรับคอนโซล Cygwincygwinมันควรจะเป็น