สำหรับ iTerm2 ฉันจะสร้างไดเร็กตอรี่ทำงานได้อย่างไรในชื่อหน้าต่าง?


22

ฉันเพิ่งเปลี่ยนมาใช้ iTerm2 จากแอป Terminal เริ่มต้นและมีปัญหาการใช้งาน

บนเทอร์มินัลไดเรกทอรีการทำงานที่คุณอยู่จะปรากฏบนแถบชื่อเรื่องพร้อมกับกระบวนการและขนาดพิกเซล ตัวอย่างเช่นเมื่อคุณคลิกที่หน้าต่างเพื่อสลับระหว่างเซสชันเทอร์มินัลต่างๆคุณจะเห็น: working_directory - process - pixel_size

ใน iTerm2 ขออภัยเฉพาะกระบวนการที่แสดงในแถบชื่อเรื่อง ดังนั้นถ้าฉันทำงานในหลาย ๆ iTerm2 windows บนไดเร็กตอรี่ที่ต่างกัน, ฉันไม่สามารถแยกความแตกต่างได้อย่างง่ายดายซึ่งเป็นตอนที่ฉันคลิกที่หน้าต่างเพื่อเลือกหนึ่งอัน ฉันรู้ว่าฉันสามารถสลับไปมาระหว่าง iTerm2 windows ได้อย่างง่ายดายเมื่อฉันเลือกหนึ่ง แต่ฉันต้องการที่จะระบุหน้าต่างที่ฉันต้องการทันที (โดยวิธีการที่ฉันใช้ Witch และแท็บคำสั่งไม่ได้ช่วยอย่างใดอย่างหนึ่งเพราะที่นี่อีกเพียงกระบวนการที่ปรากฏในรายการ)

ข้อเสนอแนะใด ๆ ฉันดูการตั้งค่าทั้งหมดและไม่เห็นอะไรเลย การสร้างโปรไฟล์ไม่ใช่สิ่งที่ฉันต้องการ - ฉันแค่อยากจะเห็นไดเรกทอรีการทำงานปัจจุบันในชื่อหน้าต่าง iTerm2

คำตอบ:


20

ด้วย\033]0;TEXT\007ลำดับการหลบหนี

ตัวอย่างการใช้งานใน Bash: echo -ne "\033]0;$PWD\007"

ซึ่งคุณสามารถเพิ่มลงในของคุณ$PROMPT_COMMANDหากคุณใช้ Bash หรือแนบไฟล์กับคุณPS1เพื่อที่จะได้รับการประเมินใหม่บ่อยครั้ง

ตัวอย่าง: export PROMPT_COMMAND='echo -ne "\033]0;$PWD\007"'


1
วิธีนี้ใช้ได้ผล เพียงแค่เป็นคนที่คลั่งไคล้ให้เพิ่มบรรทัดการส่งออกตามรายการด้านบนลงในไฟล์ ~ / .bashrc ของคุณ
Spencer

นี่มันเจ๋งมาก. ขอบคุณมาก; สิ่งนี้ช่วยให้ฉันเข้าใจว่าคำตอบนั้นเกี่ยวกับการเขียนโปรแกรม bash และไม่มีอะไรเกี่ยวข้องกับ iTerm vs Terminal เป็นติดตามสำหรับคนอื่นโปรดดูfaqs.org/docs/Linux-mini/Xterm-Title.html#s3และlinfo.org/echo.html ขอบคุณอีกครั้ง!
whiny_nil

5
และเพื่อให้ได้เซ็กเมนต์สุดท้ายของเส้นทางecho -ne "\033]0;${PWD##*/}\007"(ด้วยgithub.com/barryclark/bashstrapสำหรับการแสดงวิธี)
Anentropic

1
@Spencer: ไม่มีเหตุผลที่จะส่งออกตัวแปร PROMPT_COMMAND เปลือกไม่เป็นและในหนึ่งโดยทั่วไปไม่ควรส่งออกตัวแปรเปลือกนอกเสียจากว่าคุณมีความต้องการที่เฉพาะเจาะจงที่จะแบ่งปันตัวแปรที่มีทุกโปรแกรมทำงานโดยเปลือก โดยค่าเริ่มต้นตัวแปรที่ใช้โดยเชลล์ไม่ควรส่งออก; เฉพาะตัวแปรส่งออกที่ตั้งใจส่งไปยังกระบวนการอื่น ~/.bashrcจะถูกเรียกใช้โดยทุกเชลล์แบบโต้ตอบดังนั้นพวกเขาจึงไม่จำเป็นต้องสืบทอดตัวแปรที่กำหนดโดยสคริปต์นี้
Chris หน้า

การส่งออกเป็นวิธีที่คุณใช้ PROMPT_COMMAND ... และโดยทั่วไปแล้วจะดีกว่าสำหรับลิงก์
demure


0

หากคุณใช้ zsh (ซึ่งเป็นค่าเริ่มต้นใน macOS 10.15) ให้ใส่ค่านี้ใน ~ / .zshrc แทน:

if [ $ITERM_SESSION_ID ]; then
precmd() {
  echo -ne "\033]0;${PWD##*/}\007"
}
fi

นอกจากนี้คุณยังสามารถสะกด\033เป็น\eและเป็น\007\a

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.