Настройка iTerm2 в качестве терминала по умолчанию (OSX Lion)

61

Я хотел бы установить iTerm2 вместо терминала.app в качестве терминала по умолчанию.

Go2Shell, например, позволит вам открыть терминал для текущего каталога в Finder. Я хочу иметь возможность использовать iterm2 вместо терминала .app.

Я не нашел никакого ответа в официальной документации.

Спасибо за вашу помощь.

Обновление: ShellTo является отличной альтернативой Go2Shell и поддерживает iTerm2

Политикус
источник
Терминал по умолчанию для чего? Вы просто запускаете тот, который хотите, а другой оставляете в покое ...? Пожалуйста, объясните более подробно, что вы спрашиваете.
Даниэль Бек
1
Реклама Go2Shell из магазина приложений: добавлена ​​поддержка iTerm, iTerm 2 и даже xterm :) . Просто взгляните на его предпочтения. Также, по крайней мере для Terminal.app, эта функция была частью ОС в течение полугода, см. Здесь (последний пункт).
Даниэль Бек
О, я этого не видел. Моя вина!
Politicus

Ответы:

58

Terminal.appобъявляет себя обработчиком схем ssh, telnetи x-man-pageURL.

Он также регистрирует расширения файлов .term(сеансы), .terminal(настройки) .toolи .command(сценарии) и сам в качестве редактора / средства просмотра для них.

Кроме этого, в OS X нет терминала по умолчанию. Это просто приложение, которое может обрабатывать схемы URL и типы файлов.


iTerm способен обрабатывать все это, кроме Terminal.app .term/ .terminal.

Для типов файлов просто откройте диалоговое окно Get Info и свяжите все файлы такого рода с iTerm. Для схем URL вы можете загрузить и установить панель настроек « Приложения по умолчанию» и изменить там связь. Вы также можете использовать его как альтернативный метод изменения ассоциаций типов файлов.

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


Все эти настройки зависят от пользователя и хранятся в ~/Library/Preferences/com.apple.LaunchServices.plist. Вы можете, конечно, отредактировать его в подходящем редакторе самостоятельно. Это довольно просто. Снимок экрана Xcode 4, показывающий результат изменения x-man-pageна панели настроек « Приложения по умолчанию» :

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


Terminal.app также предоставляет следующие Сервисы для других приложений:

  • Новый терминал в папке
  • Новая вкладка терминала в папке
  • Открыть справочную страницу в Терминале
  • Поиск справочных страниц в терминале

Ассоциация с Terminal.app жестко запрограммирована. Вам необходимо создать свои собственные Сервисы, например, используя Automator и / или AppleScript, чтобы заменить их.


Если Терминал используется через его API-интерфейс AppleScript, во всех случаях невозможно просто заменить его на iTerm, поскольку их API-интерфейсы совершенно разные. Это часто требует значительных изменений в программах или скриптах, которые делают это.

Даниэль Бек
источник
2
Спасибо за ваш удивительный ответ. Понятно, очень информативно. Новичок в OSX, я не знал приложений по умолчанию.
Politicus
Удивительный инструмент. Рад, что все еще хорошо работает при Эль-Капитане.
ifwdev
О боже, это так полезно. Я случайно удалил Terminal.app (или испортил его настолько плохо, что он не откроется), и это работает, чтобы исправить это, и мои сборки React Native пока используют iterm, стук по дереву. THX: D
Tidelake
64

Вы сможете создать iTerm.appтерминал по умолчанию, выбрав «Сделать по умолчанию» в строке меню.

Раскрывающееся меню Файл

В качестве альтернативы вы можете использовать сочетание клавиш.

+ + +\

halfcube
источник
1
Кажется, это не работает для большинства моих тестов. GitHub.app по-прежнему открывает терминал, как и SublimeText.
Фреганте
5
@ bfred.it: К сожалению, название пункта меню вводит в заблуждение: единственное, что он делает, это запускает скрипты оболочки, открытые из Finder в iTerm2, а не в терминале. Это волшебным образом не заставит сторонние приложения, такие как GoShell, GitHub, Alfred, ... использовать iTerm2, как объяснено в ответе Даниэля Бека .
mklement0
Я думаю, что это самый подходящий ответ в наше время ...
mecampbellsoup
7

Как уже упоминалось в комментариях выше, Go2Shell можно сказать использовать iTerm2

Чтобы открыть окно конфигурации, выполните следующие действия:

  1. Запустите вашу любимую терминальную программу.
  2. Введите: open -a Go2Shell --args config
  3. Нажмите [возврат].

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

http://zipzapmac.com/Go2Shell

GEF
источник
6

Как указано в блоге ma.ttias.be , iTerm2 может зарегистрироваться в качестве терминала по умолчанию для некоторых распространенных схем URL: вам просто нужно проверить соответствующие схемы в самом низу вкладки «Общие» в текущем профиле из настроек iTerm.

iTerm> Настройки> Профили> Général> Схемы URL

Loranger
источник
Наиболее точно отвечу ИМО.
Маркус
5

Чтобы предоставить практическое резюме существующих ответов :

  • macOS (OS X) НЕ поддерживает концепцию терминала по умолчанию .

    • См . Полезный ответ Даниэля Бека для справочной информации.
    • iTerm2сам по себе несколько вводит в заблуждение пункт меню с именемiTerm2 > Make iTerm2 Default Term (как представлено в ответе HalfCube ), но единственное, что делает, - это заставляет Finder запускать сценарии оболочки, открытые из него в iTerm2 (более конкретно, он назначает shellроль UTI public.unix-executableдля Finder), который не типичный вариант использования.
  • Следовательно, приложения должны быть настроены ИНДИВИДУАЛЬНО для использования iTerm2 вместо Терминала, ЕСЛИ они поддерживают это :

    • В то время как Go2Shellприложение, которое вызвало вопрос OP, имеет диалоговое окно конфигурации, которое поддерживает iTerm2 ( open -a Go2Shell -- configприложение , кажется, не работает вообще с OSX 10.11.6 (при нажатии кнопки на панели инструментов начиная с v2.23, единственное, что случается так, что появляется диалоговое окно конфигурации, даже после нажатия Install Go2Shell to Finder).
    • Платная альтернатива упоминается ОПЫ - приложения ShellTo- также поддерживает iTerm2 в принципе , но с этим письмом не поддерживает текущую версию, v3 +.
mklement0
источник
1

То, что @gef отправил, было частично тем, что я сделал. Тем не менее, это то, что сработало для меня.

Откройте приложение терминала:

open -a Go2Shell --args config

Затем в опциях скопируйте следующий код, вам может потребоваться щелкнуть правой кнопкой мыши и вставить, поскольку команды ограничены:

cd %PATH%;clear;pwd;open -a iTerm.app .;killall Terminal;

И вуаля, приложение терминала должно открыть дать новый параметр для iTerm, а затем снова закрыть себя.

январь
источник
0

Эта тема была для OS X Lion, и, кажется, устарела для El Capitan. Однако, поскольку я нашел эту страницу во время поиска способа запустить iTerm вместо терминала в XCode, я решил опубликовать свое решение.

К сожалению, это не бесплатно, но это можно сделать с помощью системного приложения Magic Launch . Используя этот инструмент, я поставил Iterm в качестве приложения по умолчанию .term, .terminalи .commandрасширений. Это помогло мне.

Надеюсь это поможет!

Erik
источник
Можете ли вы рассказать о том, как работает это программное обеспечение? Пожалуйста, смотрите Как рекомендовать программное обеспечение .
Burgi
Ты хочешь сказать, что мой ответ больше не работает для El Capitan? Не могли бы вы уточнить?
Даниэль Бек
0

Вы можете запустить любую команду после запуска терминального приложения, поэтому, чтобы запустить iterm2 вместо терминального приложения, вы можете создать скрипт, который запускается каждый раз, когда открывается терминал, и этот скрипт должен открывать iterm и убивать терминальное приложение.

Шаги для создания сценария

  • Vi /Applications/run_iterm.sh
  • Скопируйте следующие команды и вставьте их в скрипт

    #! /bin/bash
    open -a iTerm.app
    killall Terminal
    
  • Сохранить файл

  • Chmod 755 /Applications/run_iterm.sh

Теперь наш скрипт готов, последний шаг - запускать его каждый раз при открытии приложения терминала. Запустить терминал. Перейти к настройкам -> Общие -> открыть оболочку с помощью -> выбрать команду «полный путь» и вставить /Applications/./run_iterm. sh внутри учебника наконец закройте приложение терминала и запустите его снова введите здесь описание изображения

Мохаммед С.А. Кваик
источник
1
Ух ты; Настройка программы для автоматического уничтожения себя при каждом запуске. Что возможно могло пойти не так? :-( ⁠
Скотт