特定のディレクトリで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
}

何が起こっているのか説明します:

  • という名前のシェル関数を作成するので、これをまたは起動時に実行したい場所launchに配置できます。~/.bash_profile

  • Bash 中括弧展開の結果をループし、から までを~/folderA{1..5}実行します。~/folderA1~/folderA5

  • osascript新しいタブを作成してアクティブ化し、デフォルトのセッションを起動して、cd指定されたディレクトリに移動するには、iTerm2 AppleScript ライブラリを呼び出します。

答え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

関連情報