Откройте несколько вкладок в iTerm2 с определенными каталогами


9

Я хотел бы знать, возможно ли это.

Я хочу настроить какой-либо скрипт или команду, которая откроет 5 вкладок, и каждая открываемая вкладка будет иметь свой собственный каталог, указанный

Все в одном окне

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

Это на iTerm2 в Mac OS X.

Я знаю, что могу сделать что-то вроде CMD + T, а затем открыть каждую из них, используя cd ~/folderA1и так далее, но если есть команда, которую я могу настроить, или сценарий, который после выполнения они сделают это сразу, я бы хотел знать, если есть способ сделать это.

Ответы:


8

Обновление: более новый iTerm требует, чтобы вы изменили синтаксис, так что это будет выглядеть так:

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

Смотрите также этот ответ здесь .


Для более старых версий iTerm:

Взяв скрипт из моего ответа здесь , вы можете сделать что-то вроде этого:

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
}

Чтобы объяснить, что происходит:

  • Мы создаем функцию оболочки с именем launch, так что вы можете поместить ее в свою ~/.bash_profileили где угодно, чтобы она выполнялась при запуске.

  • Мы перебираем в результате расширения брекет Bash ~/folderA{1..5}, который дает вам ~/folderA1через ~/folderA5.

  • Мы вызываем библиотеку iTerm2 AppleScript, osascriptчтобы создать новую вкладку, активировать ее, запустить сеанс по умолчанию и cdперейти в указанный каталог.


1

itermocil может справиться с этим.

Если в файле указано следующее ~/.itermocil/foo.yml, команда itermocil fooоткроет 5 вкладок в указанных папках. (Это действительно простой макет - itermocil может сделать гораздо больше, чем это.)

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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.