在 iTerm2 中開啟具有特定目錄的多個選項卡

在 iTerm2 中開啟具有特定目錄的多個選項卡

我想知道這是否可能。

我想設定一些腳本或命令來開啟 5 個選項卡,每個開啟的選項卡都會指定自己的目錄

全部在同一個視窗中

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

這是在 Mac OS X 中的 iTerm2 上。

我知道我可以執行類似 CMD+T 的操作,然後使用cd ~/folderA1等等打開它們中的每一個,但是如果有一個我可以設定的命令或一個腳本,在執行後它們會立即執行所有操作,我很想知道如果有辦法的話。

答案1

更新:較新的 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
}

解釋一下發生了什麼事:

  • 我們建立一個名為 的 shell 函數launch,因此您可以將其放在您的~/.bash_profile或任何您希望在啟動時執行的位置。

  • 我們循環 Bash 大括號擴展的結果~/folderA{1..5},這將為您提供~/folderA1幫助~/folderA5

  • 我們透過呼叫 iTerm2 AppleScript 函式庫osascript來建立一個新選項卡,啟動它,啟動預設會話,並cd轉到指定的目錄。

答案2

伊特莫西爾可以處理這個。

在名為 的檔案中新增以下內容~/.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

相關內容