Otwórz wiele kart w iTerm2 z określonymi katalogami

9

Chciałbym wiedzieć, czy jest to możliwe.

Chcę skonfigurować skrypt lub polecenie, które otworzą 5 kart, a każda otwarta karta będzie miała określony katalog

Wszystko w tym samym oknie

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

To jest na iTerm2 w Mac OS X.

Wiem, że mogę zrobić coś takiego jak CMD + T, a następnie otworzyć każdy z nich za pomocą cd ~/folderA1i tak dalej, ale jeśli istnieje polecenie, które mogę skonfigurować lub skrypt, który po wykonaniu zrobi to wszystko naraz, chciałbym wiedzieć jeśli jest na to sposób.

Ali
źródło

Odpowiedzi:

8

Aktualizacja: Nowsza wersja iTerm wymaga zmiany składni, więc wyglądałoby to tak:

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

Zobacz także tę odpowiedź tutaj .


W przypadku starszych wersji iTerm:

Biorąc skrypt z mojej odpowiedzi tutaj , możesz zrobić coś takiego:

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
}

Aby wyjaśnić, co się dzieje:

  • Tworzymy funkcję powłoki o nazwie launch, dzięki czemu możesz umieścić ją w swoim ~/.bash_profilemiejscu lub w dowolnym miejscu, w którym chcesz go uruchomić podczas uruchamiania.

  • Pętlimy wynik rozszerzenia nawiasu klamrowego Bash ~/folderA{1..5}, który daje ci ~/folderA1szansę ~/folderA5.

  • Wywołujemy bibliotekę iTerm2 AppleScript, osascriptaby utworzyć nową kartę, aktywować ją, uruchomić sesję domyślną i cddo określonego katalogu.

slhck
źródło
1

itermocil sobie z tym poradzi.

Po wywołaniu następującego polecenia w pliku ~/.itermocil/foo.ymlpolecenie itermocil foootworzy 5 kart w określonych folderach. (Jest to jednak naprawdę prosty układ - itermocil może zrobić znacznie więcej.)

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
źródło