Apri più schede in iTerm2 con una directory specifica


9

Vorrei sapere se questo è possibile.

Voglio impostare alcuni script o comandi che apriranno 5 schede e ogni scheda che verrà aperta avrà la propria directory specificata

Tutto nella stessa finestra

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

Questo è su iTerm2 in Mac OS X.

So di poter fare qualcosa come CMD + T e quindi aprirli ciascuno usando cd ~/folderA1e così via, ma se c'è un comando che posso impostare o uno script che dopo l'esecuzione lo faranno tutti in una volta mi piacerebbe sapere se c'è un modo per farlo.

Risposte:


8

Aggiornamento: iTerm più recente richiede di modificare la sintassi, quindi dovrebbe apparire come:

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

Vedi anche questa risposta qui .


Per le versioni precedenti di iTerm:

Prendendo la sceneggiatura dalla mia risposta qui , puoi fare qualcosa del genere:

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
}

Per spiegare cosa sta succedendo:

  • Creiamo una funzione shell denominata launch, in modo da poterla inserire nel tuo ~/.bash_profileo ovunque tu voglia farla eseguire all'avvio.

  • Passiamo in rassegna il risultato dell'espansione del tutore Bash ~/folderA{1..5}, che ti lascia ~/folderA1passare ~/folderA5.

  • Chiamiamo la libreria AppleScript iTerm2 osascriptper creare una nuova scheda, attivarla, avviare la sessione predefinita e cdnella directory specificata.


1

itermocil può gestirlo.

Con quanto segue in un file chiamato ~/.itermocil/foo.yml, il comando itermocil fooaprirà 5 schede nelle cartelle specificate. (Questo è un layout davvero semplice - itermocil può fare molto di più.)

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.