Öffnen Sie in iTerm2 mehrere Tabs mit bestimmten Verzeichnissen

Öffnen Sie in iTerm2 mehrere Tabs mit bestimmten Verzeichnissen

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

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

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 befindet sich auf iTerm2 unter Mac OS X.

Ich weiß, dass ich etwas wie CMD+T tun und dann jeden von ihnen mit cd ~/folderA1usw. öffnen kann, aber wenn es einen Befehl gibt, den ich einrichten kann, oder ein Skript, das nach der Ausführung alles auf einmal erledigt, würde ich gerne wissen, ob es eine Möglichkeit gibt, dies zu tun.

Antwort1

Aktualisieren:Bei neueren iTerm-Versionen müssen Sie die Syntax ändern. Das Ganze würde dann etwa so aussehen:

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 auchdiese Antwort hier.


Für ältere iTerm-Versionen:

Das Drehbuch übernehmenaus meiner Antwort hierkö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 namens launch, sodass Sie diese in Ihrem ~/.bash_profileoder wo immer Sie möchten, beim Start ausführen lassen können.

  • Wir durchlaufen das Ergebnis der Bash-Klammernerweiterung ~/folderA{1..5}, was Sie ~/folderA1durchführt ~/folderA5.

  • Wir rufen die iTerm2-AppleScript-Bibliothek auf, osascriptum eine neue Registerkarte zu erstellen, sie zu aktivieren, die Standard-Sitzung zu starten und cdzum angegebenen Verzeichnis zu gelangen.

Antwort2

itermocilkann damit umgehen.

Mit dem Folgenden in einer Datei namens würde ~/.itermocil/foo.ymlder Befehl itermocil foo5 Tabs in den angegebenen Ordnern öffnen. (Das ist allerdings ein wirklich einfaches Layout – itermocil kann noch viel mehr.)

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

verwandte Informationen