Есть ли сочетание клавиш (горячая клавиша) для открытия терминала в macOS?

125

Один из моих основных инструментов, используемых для программирования, - это мой Терминал. Это делает мой процесс программирования более эффективным, когда я могу быстро открыть окно терминала.

В Ubuntu я использовал ( window+ Alt+ T) для открытия терминала. Но теперь я использую Macbook в своей работе по программированию.

Иногда я использую Spotlight для поиска «Терминал» и нажимаю Enter.

Я хотел бы знать, могу ли я назначить для этого горячую клавишу клавиатуры.

Спасибо

Гопал Прасад
источник
33
Я голосую за то, чтобы снова открыть этот вопрос, потому что он относится к «инструментам, используемым в основном для программирования». Программисты используют терминал в первую очередь для выполнения задач, связанных с программированием.
Грег Копфф,
1
@JonKiparsky Вопрос в том, чтобы где-то открывался Терминал и открывать новое окно, когда в фокусе находится другое приложение.
Квентин
4
Просто потому, что я думаю, что это смешно ... Я повторяю то, что сказал @GregKopff ... «если они напрямую не связаны с инструментами, используемыми в основном для программирования» ... Гопал Прасад, ОП, ясно говорит: «Один из моих основных инструментов, используемых для программирование - это мой Терминал ". Как, давай ... решение этой проблемы очень ценно.
mmr118
1
Это совершенно правильный вопрос! Многие люди, пришедшие из Linux (использующие такие рабочие столы, как Unity, XFCE, Cinnamon, MATE и т. Д.), Ищут такую ​​функциональность. Прогнозы подтверждают интерес.
Сократ
iTerm2 . Я не пытаюсь шутить, серьезно, просто используйте iTerm2.
Benjamin R

Ответы:

127

Я протестировал следующую процедуру в macOS Mojave 10.14.6 (18G3020).

Запустите Automator. Создайте документ типа «Быстрое действие»:

шаблон быстрого действия

(В старых версиях macOS используйте шаблон «Сервис».)

В новом документе Automator добавьте действие «Запустить AppleScript». (Вы можете ввести «запустить applescript» в поле поиска вверху списка действий, чтобы найти его.) Вот AppleScript, который нужно вставить в действие:

on run {input, parameters}
    tell application "Terminal"
        if it is running then
            do script ""
        end if
        activate
    end tell
end run

Установите для всплывающего окна «Рабочий процесс получает» значение «Без ввода». В целом это должно выглядеть так:

рабочий процесс с applescript

Сохраните документ под названием «Новый терминал». Затем перейдите в меню Automator (или меню приложения в любом запущенном приложении) и откройте подменю Services. Теперь вы должны увидеть быстрое действие «Новый терминал»:

Новый пункт меню службы терминала

Если щелкнуть пункт меню «Новый терминал», откроется диалоговое окно:

диалог разрешения

Щелкните OK, чтобы разрешить выполнение действия. Вы увидите это диалоговое окно один раз в каждом приложении, которое находится на переднем плане при использовании действия. Другими словами, при первом использовании действия, когда Finder находится на переднем плане, вы увидите диалоговое окно. И при первом использовании действия, когда Safari находится на переднем плане, вы увидите диалоговое окно. И так далее.

После того, как вы нажмете ОК в диалоговом окне, Терминал должен открыть новое окно.

Чтобы назначить сочетание клавиш для быстрого действия , выберите пункт «Настройки служб…» в меню «Службы». (Или запустите «Системные настройки», выберите панель «Клавиатура», затем перейдите на вкладку «Ярлыки», затем выберите «Службы» в левом списке.) Прокрутите до конца правого списка и найдите новую службу терминала. Нажмите на нее, и вы увидите кнопку «Добавить ярлык»:

добавить кнопку быстрого доступа

Нажмите кнопку и нажмите предпочитаемое сочетание клавиш. Затем почешите затылок, потому что (когда я попробовал) снова появляется кнопка «Добавить ярлык». Но нажмите кнопку еще раз, и вы должны увидеть свой ярлык:

набор сочетаний клавиш

Теперь вы должны иметь возможность нажимать сочетание клавиш в большинстве случаев, чтобы открыть новое окно терминала.

Роб Мэйофф
источник
9
Мне нравится твой ответ, даже если некоторым не нравится этот вопрос! :-)
Марк Сетчелл
3
У меня это отлично работает, за исключением случаев, когда приложение Terminal еще не запущено. В таком случае я получаю два новых окна Терминала. Я исправил это, изменив AppleScript на следующее: при запуске {input, parameters} сообщить приложению "Terminal", если он запущен, затем выполнить script "" end, если активировать end сказать return input end run
chrisdembia
3
@robmayoff У меня проблемы с реализацией вашего скрипта. Он отлично работает, когда я нажимаю кнопку воспроизведения в Automator, однако, когда я нажимаю задачу в разделе «Службы», появляется сообщение об ошибке The action "Run AppleScript" encountered an error. Любые идеи? Я использую OSX 10.12.1, если это важно.
Axim
7
У меня была проблема, когда он открывал окно, если в Терминале не было окон, но если оно уже было открыто, он просто выбирал это окно. Все, что мне нужно было сделать, это удалить слово «оболочка» из сценария.
Холден Льюис
2
У меня проблема с дублированием окон в последнем обновлении этого ответа. Я исправил это с помощью следующего скриптаon run {input, parameters} tell application "Terminal" if not (exists window 1) then reopen activate end tell end run
Джофси
9

Как программисты, нам нужен самый быстрый и надежный способ привести наши инструменты в порядок и начать взламывать. Вот как я заставил его работать в MacOS 10.13.1 (High Sierra):

  • Вариант 1: перейдите на System Preferences | Keyboard | Shortcut | Services. В Files and Foldersразделе включите New Terminal at Folder и / или New Terminal Tab at Folderназначьте ему горячую клавишу. Конфигурация сочетания клавиш

  • Вариант 2: если вы хотите, чтобы сочетание клавиш работало где угодно, создайте новую службу с помощью Automator, затем перейдите к сочетанию клавиш, чтобы назначить ему сочетание клавиш. Известное ограничение: не работает с рабочего стола

введите описание изображения здесь

Ноты:

  • Если ярлык не работает, возможно, он конфликтует с другой привязкой клавиш (и ОС не предупреждает вас), попробуйте что-нибудь еще, например, если ⇧⌥T не работает, попробуйте ⇧⌘T.
  • Не исправляйте орфографию MacOS, в этом нет необходимости.
dnang
источник
1
Вариант 2 у меня сработал, спасибо! Странное ограничение не работать с рабочего стола. Также я бы посоветовал не использовать ⇧⌘T, так как это обычный ярлык для «повторно открыть последнюю закрытую вкладку»
Чарли Джи
2

iTerm2 - альтернатива терминалу - имеет возможность использовать настраиваемую общесистемную горячую клавишу для отображения / скрытия (изначально установлено на Alt+ Space, по умолчанию отключено)

Виктор
источник
Кстати о iTerm2. Это то, что я пытаюсь запустить, используя автомат, но я получаю эту "script"ошибку, когда указываю, tell application "iTerm2"как вы открыли iTerm2?
blamb
1
@blamb Я обычно открываю iTerm2 с помощью этой горячей клавиши (она должна быть включена в настройках iTerm2 -> клавиши -> Горячая клавиша). Никогда не пробовал автомат.
Виктор
Дополнительную информацию о настройке см. В этом ответе: superuser.com/a/1259726
Benjamin R