Öffnen Sie mehrere Registerkarten in iTerm2 mit einem bestimmten Verzeichnis

9

Ich würde gerne wissen, ob dies möglich ist.

Ich möchte ein Skript oder einen Befehl einrichten, der 5 Registerkarten öffnet, und für jede Registerkarte, die geöffnet wird, wird ein eigenes Verzeichnis angegeben

Alles im selben Fenster

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

Dies ist auf iTerm2 in Mac OS X.

Ich weiß, dass ich so etwas wie CMD + T machen und dann jeden von ihnen mit cd ~/folderA1und so weiter öffnen kann , aber wenn es einen Befehl gibt, den ich einrichten kann, oder ein Skript, das sie nach der Ausführung auf einmal tun, würde ich es gerne wissen wenn es einen Weg gibt, dies zu tun.

Ali
quelle

Antworten:

8

Update: Bei neuerem iTerm müssen Sie die Syntax ändern. Dies sieht also folgendermaßen aus:

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

Siehe auch diese Antwort hier .


Für ältere iTerm-Versionen:

Wenn Sie das Skript aus meiner Antwort hier entnehmen , können Sie Folgendes tun:

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
}

Um zu erklären, was los ist:

  • Wir erstellen eine Shell-Funktion mit dem Namen launch, damit Sie diese in Ihre ~/.bash_profileoder wo immer Sie sie beim Start ausführen lassen möchten, einfügen können.

  • Wir durchlaufen das Ergebnis der Bash-Klammererweiterung ~/folderA{1..5}, die Sie durchführt .~/folderA1~/folderA5

  • Wir rufen die iTerm2-AppleScript-Bibliothek osascriptauf, um einen neuen Tab zu erstellen, ihn zu aktivieren, die Standardsitzung zu starten und cdin das angegebene Verzeichnis zu wechseln .

slhck
quelle
1

itermocil kann damit umgehen.

Mit den folgenden Angaben in einer aufgerufenen Datei würde ~/.itermocil/foo.ymlder Befehl itermocil foo5 Registerkarten in den angegebenen Ordnern öffnen. (Dies ist jedoch ein wirklich einfaches Layout - itermocil kann viel mehr als das.)

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
Gimboland
quelle