Как настроить AppleScript, чтобы открыть новую вкладку iTerm2 и изменить каталог?

17

В OS X, как мне настроить AppleScript для

  • открыть новую вкладку iTerm2
  • перейти в каталог
  • очистить консоль
  • отобразить текущий каталог

У меня было что-то подобное для обычного терминала, но я даже не могу найти руководство по написанию скриптов для iTerm2.

УХО
источник
1
Зайдите на их сайт , нажмите « Документация », затем нажмите « Сценарии ». Или что вы подразумеваете под «руководством по написанию сценариев»?
Даниэль Бек
Если вы попробуете это с iTerm2, решение выложено здесь: stackoverflow.com/questions/38692346/new-tab-in-iterm2#_=_
Энди Кокрейн,

Ответы:

16

Решение Даниэля как-то открывает новое окно - также, exec commandзаявление не работает, как ожидалось. Нужно write textвместо этого.

Кроме того, вы должны использовать

launch session "Default Session" 

для того, чтобы получить новую вкладку.

Следующее делает то, что вы просили:

tell application "iTerm"
    make new terminal
    tell the current terminal
        activate current session
        launch session "Default Session"
        tell the last session
            write text "cd ~/Downloads; clear; pwd"
        end tell
    end tell
end tell
slhck
источник
написать текст добавляет возврат / новую строку самостоятельно?
Даниэль Бек
Видимо, это так! Я перепробовал все перед публикацией. exec commandделает что-то , но я не знаю, что именно.
Slhck
Спасибо за хороший ответ. Я также обнаружил, что комментарии внизу этой страницы полезны при написании сценария "cd to": code.google.com/p/iterm2/wiki/AppleScript
cwd
Я полагаю, что exec на самом деле работает, exec(3)и поэтому работает только в новом сеансе и запускает процесс exec: ed вместо оболочки.
Хенрик N
1
@slhck nvm, нашел этот маленький драгоценный камень с использованием EOD: apple.stackexchange.com/questions/103621/…
Ken
0

Сейчас нет на Mac, поэтому он может не работать на 100% (адаптировал мой ответ ).

tell application "iTerm"
    activate
    set t to (make new terminal)
    tell t
        tell (make new session at the end of sessions)
            exec command "cd Downloads"
            exec command "clear"
            exec command "pwd"
        end tell
    end tell
end tell

Вы, вероятно, можете объединить команды

cd Downloads ; clear ; pwd
Даниэль Бек
источник