เปิดหลายแท็บใน iTerm2 ด้วยไดเรกทอรีเฉพาะ


9

ฉันต้องการทราบว่าเป็นไปได้หรือไม่

ฉันต้องการตั้งค่าสคริปต์หรือคำสั่งที่จะเปิด 5 แท็บและแต่ละแท็บที่จะเปิดจะมีการระบุไดเรกทอรีของตัวเอง

ทั้งหมดในหน้าต่างเดียวกัน

tab 1: open ~/folderA1
tab 2: open ~/folderA2
tab 3: open ~/folderA3
tab 4: open ~/folderA4
tab 5: open ~/folderA5

นี่คือ iTerm2 ใน Mac OS X

ฉันรู้ว่าฉันสามารถทำบางอย่างเช่น CMD + T จากนั้นเปิดแต่ละรายการโดยใช้cd ~/folderA1และอื่น ๆ แต่ถ้ามีคำสั่งที่ฉันสามารถตั้งค่าหรือสคริปต์ที่เรียกใช้งานได้หลังจากนั้นพวกเขาจะทำทุกอย่างทันทีฉันชอบที่จะรู้ หากมีวิธีการทำเช่นนั้น

คำตอบ:


8

อัปเดต:ใหม่กว่า iTerm ต้องการให้คุณเปลี่ยนไวยากรณ์ดังนั้นจะมีลักษณะดังนี้:

tell application "iTerm"
    tell current window
        create tab with default profile
    end tell
    tell current tab of current window
        set _new_session to last item of sessions
    end tell
    tell _new_session
        select
        write text "cd \"$dir\""
    end tell
end tell

ดูเพิ่มเติมคำตอบได้ที่นี่


สำหรับ iTerm เวอร์ชั่นเก่า:

รับสคริปต์จากคำตอบของฉันที่นี่คุณสามารถทำสิ่งนี้:

launch () {
for dir in ~/folderA{1..5}; do
/usr/bin/osascript <<-EOF
tell application "iTerm"
    make new terminal
    tell the current terminal
        activate current session
        launch session "Default Session"
        tell the last session
            write text "cd \"$dir\""
        end tell
    end tell
end tell
EOF
done
}

เพื่ออธิบายสิ่งที่เกิดขึ้น:

  • เราสร้างชื่อฟังก์ชั่นของเชลล์launchเพื่อให้คุณสามารถใส่สิ่งนี้ในของคุณ~/.bash_profileหรือทุกที่ที่คุณต้องการให้มันทำงานเมื่อเริ่มต้น

  • เราห่วงมากกว่าผลมาจากการขยายตัวรั้งทุบตี~/folderA{1..5}ซึ่งจะช่วยให้คุณผ่าน~/folderA1~/folderA5

  • เราเรียกไลบรารี iTerm2 AppleScript ผ่านosascriptเพื่อสร้างแท็บใหม่เปิดใช้งานเรียกใช้เซสชันเริ่มต้นและcdไปยังไดเรกทอรีที่ระบุ


1

itermocilสามารถจัดการกับสิ่งนี้ได้

ด้วยไฟล์ต่อไปนี้ที่เรียกว่า~/.itermocil/foo.ymlคำสั่งitermocil fooจะเปิด 5 แท็บในโฟลเดอร์ที่ระบุ (นี่เป็นเลย์เอาต์ที่ง่ายมาก ๆ - itermocil สามารถทำอะไรได้มากกว่านี้)

windows:
  - name: 1
    root: ~/folderA1
    layout: even-horizontal
    panes:
      - focus: true
  - name: 2
    root: ~/folderA2
    layout: even-horizontal
    panes:
      - focus: true
  - name: 3
    root: ~/folderA3
    layout: even-horizontal
    panes:
      - focus: true
  - name: 4
    root: ~/folderA4
    layout: even-horizontal
    panes:
      - focus: true
  - name: 5
    root: ~/folderA5
    layout: even-horizontal
    panes:
      - focus: true
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.