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

340
Ilia Kukharev

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

Спасибо.

1

2 ответа на вопрос

1
Ilia Kukharev

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

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
CJK

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

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

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

 -- 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. Чтобы управлять этими сохраненными группами, перейдите в « Настройки»> «Группы окон», где вы можете удалить те, которые вам больше не нужны.

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