特定のディレクトリでiTerm2の複数のタブを開く


9

これが可能かどうか知りたいのですが。

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、それぞれを使用してそれらを開くことができることはわかっていますが、設定できるコマンドまたはスクリプトを実行後に実行すると、それらを一度にすべて実行できることを知りたいと思いますそうする方法があれば。

回答:


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つのタブを開きます。(ただし、これは本当にシンプルなレイアウトです。イテルモシルはこれよりもはるかに多くのことができます。)

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.