ฉันใช้ 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
มันควรจะเป็น