Mở nhiều tab trong iTerm2 với một thư mục cụ thể


9

Tôi muốn biết nếu điều này là có thể.

Tôi muốn thiết lập một số tập lệnh hoặc lệnh sẽ mở 5 tab và mỗi tab sẽ mở sẽ có thư mục riêng được chỉ định

Tất cả trong cùng một cửa sổ

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

Đây là trên iTerm2 trong Mac OS X.

Tôi biết tôi có thể làm một cái gì đó như CMD + T và sau đó mở từng cái bằng cách sử dụng cd ~/folderA1, nhưng nếu có một lệnh mà tôi có thể thiết lập hoặc một tập lệnh mà sau khi thực thi, họ sẽ làm ngay lập tức tôi muốn biết nếu có một cách để làm như vậy.

Câu trả lời:


8

Cập nhật: iTerm mới hơn yêu cầu bạn thay đổi cú pháp, vì vậy điều này sẽ giống như:

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

Xem thêm câu trả lời này ở đây .


Đối với các phiên bản iTerm cũ hơn:

Lấy kịch bản từ câu trả lời của tôi ở đây , bạn có thể làm một cái gì đó như thế này:

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
}

Để giải thích những gì đang xảy ra:

  • Chúng tôi tạo một hàm shell có tên launch, vì vậy bạn có thể đặt hàm này vào ~/.bash_profilehoặc bất cứ nơi nào bạn muốn để nó được thực thi khi khởi động.

  • Chúng tôi lặp lại kết quả của việc mở rộng cú đúp Bash ~/folderA{1..5}, mang lại cho bạn ~/folderA1thông qua ~/folderA5.

  • Chúng tôi gọi thư viện iTerm2 AppleScript thông qua osascriptđể tạo một tab mới, kích hoạt nó, khởi chạy phiên mặc định và cdđến thư mục được chỉ định.


1

itermocil có thể xử lý việc này.

Với tệp sau trong tệp được gọi ~/.itermocil/foo.yml, lệnh itermocil foosẽ mở 5 tab trong các thư mục được chỉ định. (Đây là một bố cục thực sự đơn giản - itermocil có thể làm được nhiều hơn thế.)

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.