1

Есть ли способ открыть Терминал с предопределенными вкладками? У меня есть 5 наиболее распространенных путей, которые я обычно использую, и я хочу, чтобы терминал открывался с этими путями, открытыми в разных вкладках. Я думаю, это должен быть AppleScript, но у меня недостаточно опыта, чтобы написать это. Вы можете мне помочь?

Спасибо.

2 ответа2

1

НМ, это ответ:

tell application "Terminal"
    activate
    do script "cd %path1%"
    tell application "Terminal" to set custom title of tab 1 of front window to "Name 1"
    tell application "System Events" to keystroke "t" using command down
    delay 0.05
    do script "cd %path2%" in window 1
    tell application "Terminal" to set custom title of tab 1 of front window to "Name 2"
end tell

Откроется Терминал с Path1 и именем вкладки 1 и еще одна вкладка с Path2 и именем вкладки 2

0

Во-первых, пара замечаний о вашем AppleScript только для учебных целей:

  • Вам не нужно иметь команды tell внутри tell блок , если они оба посылать команды на тот же объект (т.е. Terminal). Блок tell достаточно; опускает заявление tell внутри него , которые касаются терминала (но сохранить тот , который обращается к системе событий), и команды будут отправлены на терминал.
  • Я бы не стал использовать системные события для создания новых вкладок. С одной стороны, ярлыки могут измениться, или приложение может потерять фокус по какой-то причине и пропустить событие нажатия клавиши. Фактически, если вы не нацеливаете свой do script на Window 1, а вместо этого оставляете его нецелевым, Terminal продолжит работу и создаст новую вкладку самостоятельно. Так что это устраняет необходимость в нескольких строках кода.

Итак, если вам нужно всего лишь создать несколько вкладок в разных местах, это будет так просто:

    -- Launch terminal without creating any windows
    launch

    -- Create a bunch of tabs at desired path locations
    -- then clear the window to neaten its appearance
    do script "cd ~; clear"
    do script "cd /; clear"
    do script "cd /Applications; clear"

(Вы можете вложить все это в tell блоке таргетирования терминала, я просто установить редактор сценариев , чтобы сделать это для меня в навигационной панели).

Чтобы задать заголовки каждой вкладки, создав все вкладки одновременно, необходимо убедиться, что мы нацелены на правильный объект окна каждой вкладки. Эти дополнительные строки кода прикрепляются сразу после вышеприведенных и называют вкладки "Tab 1", "Tab 2" и т.д. В том порядке, в котором они появились:

    -- Get window ("tab") id's and sort numerically
    -- with the help of bash functionality
    set IDs to id of every window
    set AppleScript's text item delimiters to " "
    do shell script ({¬
        "echo", ¬
        IDs, ¬
        "| tr ' ' '\n'", ¬
        "| sort -n", ¬
        "| tr '\n' ' '"} as string)
    set IDs to the words of result

    -- Give each tab a new custom title
    repeat with n from 1 to number of windows
        set custom title of tab 1 of ¬
            window id (item n in IDs) to ¬
            {"Tab", n} as string
    end repeat

Оконные группы

Во-вторых, и, самое главное, поскольку это фактически отвечает на ваш первоначальный вопрос, AppleScript вообще не нужен для достижения того, чего вы хотите. Терминал имеет встроенный способ сохранить группу окон (вкладок), а затем повторно запускать эти окна каждый раз, когда вы запускаете Терминал. Вот как:

  1. Создайте вкладки, которые вы хотите. cd каждую вкладку в нужное место (или введите любую команду на вкладках).
  2. В меню « Окно» выберите « Сохранить Windows как группу ...». В появившемся диалоговом окне введите имя для этой группы и выберите, хотите ли вы, чтобы этот набор окон открывался при каждом запуске терминала.
  3. Теперь они будут. Вы можете сохранить несколько групп окон и получить к ним доступ из меню « Окно », выбрав « Открыть группу окон».
  4. Чтобы управлять этими сохраненными группами, перейдите в « Настройки»> «Группы окон», где вы можете удалить те, которые вам больше не нужны.

Единственным недостатком этого является то, что заголовки вкладок не будут устанавливаться автоматически, хотя вы можете заранее определить, какую информацию содержит заголовок каждой вкладки в общем, в разделе « Предпочтения»> «Профили»> «Окно / вкладка».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .