วิธีเปลี่ยนไดเร็กทอรีหน้าต่างใหม่ที่เป็นค่าดีฟอลต์จากภายใน tmux


41

ฉันเพิ่งย้ายจากหน้าจอ GNUเพื่อtmux
ฉันพบว่ามันค่อนข้างคล้ายกัน แต่มีการสนับสนุนที่ใหญ่กว่า (ฉันเปลี่ยนเนื่องจากปัญหาเวลาหลบหนีใน neovim - ความละเอียดเป็นเพียง tmux)

น่าเสียดายที่ใน tmux ฉันไม่สามารถหาคำสั่งที่คล้ายกันนี้:

screen -X eval "chdir $(some_dir)"

คำสั่งข้างต้นเปลี่ยนไดเรกทอรีเริ่มต้นสำหรับหน้าต่างใหม่ / หน้าจอ / บานหน้าต่างจากภายในหน้าจอ GNU ดังนั้นเมื่อฉันกดCtrl+ a(คล้ายกับ tmux Ctrl+ b) - หน้าต่างใหม่เปิดใน$(some_dir)ไดเรกทอรี

มีสิ่งที่คล้ายกันใน tmux?

คำตอบ:
ฉันได้ใช้ @Lqueryvg คำตอบและรวมกับคำแนะนำ @Vincent Nivoliers จากความคิดเห็นและที่ให้ฉันผูกพันใหม่สำหรับคำสั่งattach -c "#{pane_current_path}"ที่ตั้งไดเรกทอรีปัจจุบันของฉันเป็นค่าเริ่มต้น
ขอบคุณ


คุณสามารถใช้คำตอบที่สองของคำถามนี้
Vincent Nivoliers

ขอบคุณมันมีประโยชน์ new-window -c "#{pane_current_path}"ทำงานอยู่ แต่สิ่งที่ฉันต้องการคือการตั้งค่าเส้นทางอย่างถาวรเช่น: ฉันทำงานในโครงการใน / aaa / bbb แต่อย่างใดฉันเมื่อฉันเปลี่ยนเส้นทางเป็นพูด / ccc / ddd และเริ่มใหม่ด้วย Cb และ c ฉันต้องการ ลงจอดอีกครั้งใน / aaa / bbb คุณคิดวิธีแก้ปัญหานี้ได้หรือไม่?
lewiatan

.tmux.confผมเองดีด้วยนอกเหนือจากสามบรรทัดสุดท้ายในของฉัน ด้วยวิธีนี้ฉันเพียงแค่นำทางหนึ่งครั้งไปยังโฟลเดอร์และสร้าง windows / แยกจากที่นั่น แต่ฉันยอมรับว่านี่ไม่ใช่วิธีแก้ปัญหาของคุณนั่นคือสาเหตุที่ฉันไม่ได้โพสต์คำตอบ!
Vincent Nivoliers

คำตอบ:


60
  1. เริ่มtmuxดังนี้

    (cd /aaa/bbb; tmux)
    

    ตอนนี้หน้าต่างใหม่ (หรือบานหน้าต่าง) ที่คุณสร้างจะเริ่มต้นในไดเรกทอรี/aaa/bbbโดยไม่คำนึงถึงไดเรกทอรีปัจจุบันของบานหน้าต่างปัจจุบัน

  2. หากคุณต้องการที่จะเปลี่ยนไดเรกทอรีเริ่มต้นครั้งเดียวtmuxและทำงานใช้กับattach-session-c

    การอ้างอิงจากtmuxman page สำหรับattach-session:

    -c will set the session working directory (used for new windows)
    to working-directory.
    

    ตัวอย่างเช่น:

    • Ctrl+b :

    • attach -c /ddd/eee

    หน้าต่างใหม่ (หรือบานหน้าต่าง) จะเริ่มในไดเรกทอรี/ddd/eeeโดยไม่คำนึงถึงไดเรกทอรีของบานหน้าต่างปัจจุบัน


7
ตัวเลือกที่สองคือสิ่งที่ฉันต้องการ ฉันจะใช้attach -c "#{pane_current_path}"ซึ่งจะเหมือนกับสิ่งที่ฉันมีในหน้าจอ ขอบคุณ
lewiatan

ใช่ attach -cเป็นสิ่งที่ฉันกำลังมองหา ขอขอบคุณ
Byron Mansfield

2

สำหรับผู้ที่กำลังมองหาการอ้างอิงมากกว่าคำตอบที่เลือกไว้มีคำตอบที่ดีอีกข้อสำหรับคำถามนี้ใน StackOverflow:

https://stackoverflow.com/questions/27307815/how-to-change-the-starting-directory-of-a-tmux-session

ซึ่งให้วิธีที่คุณสามารถทำได้โดยไม่ต้องออกจากเซสชั่นและสำหรับผู้ที่ใช้ tmux ในเซสชั่นหลายเซสชั่น (เช่นตัวเอง) คำตอบข้างต้นให้บริบทที่ดีขึ้นเล็กน้อยเป็นวิธีattach/ attach-sessionงาน

ดูคำตอบทั้งสองที่มีอยู่สำหรับวิธีต่างๆที่สามารถใช้ได้ ฉันพบว่าทั้งสองมีประโยชน์ / ลึกซึ้ง

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