Ouvrez plusieurs onglets dans iTerm2 avec des répertoires spécifiques

9

Je voudrais savoir si c'est possible.

Je veux configurer un script ou une commande qui ouvrira 5 onglets et chaque onglet qui s'ouvrira aura son propre répertoire spécifié

Tout dans la même fenêtre

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

C'est sur iTerm2 sous Mac OS X.

Je sais que je peux faire quelque chose comme CMD + T, puis ouvrir chacun d'eux en utilisant cd ~/folderA1et ainsi de suite, mais s'il y a une commande que je peux configurer ou un script qui après l'exécution, ils le feront tout à coup, j'aimerais savoir s'il existe un moyen de le faire.

Ali
la source

Réponses:

8

Mise à jour: La nouvelle version d'iTerm vous oblige à changer la syntaxe, donc cela ressemblerait à:

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

Voir aussi cette réponse ici .


Pour les anciennes versions d'iTerm:

En prenant le script de ma réponse ici , vous pouvez faire quelque chose comme ceci:

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
}

Pour expliquer ce qui se passe:

  • Nous créons une fonction shell nommée launch, afin que vous puissiez la mettre dans votre ~/.bash_profileou n'importe où vous voulez qu'elle soit exécutée au démarrage.

  • Nous passons en revue le résultat de l'expansion de l'accolade Bash ~/folderA{1..5}, qui vous donne ~/folderA1accès ~/folderA5.

  • Nous appelons la bibliothèque AppleScript iTerm2 osascriptpour créer un nouvel onglet, l'activer, lancer la session par défaut et cddans le répertoire spécifié.

slhck
la source
1

itermocil peut gérer cela.

Avec ce qui suit dans un fichier appelé ~/.itermocil/foo.yml, la commande itermocil fooouvrirait 5 onglets dans les dossiers spécifiés. (Il s'agit d'une mise en page très simple - itermocil peut faire bien plus que cela.)

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
la source