Ustawienie iTerm2 jako domyślnego terminala (OSX Lion)


61

Chciałbym ustawić iTerm2 zamiast terminal.app jako domyślny terminal.

Na przykład Go2Shell pozwala otworzyć terminal do bieżącego katalogu w Finderze. Chcę mieć możliwość korzystania z iterm2 zamiast terminal.app.

Nie znalazłem żadnej odpowiedzi w oficjalnej dokumentacji.

Dzięki za pomoc.

Aktualizacja: ShellTo jest świetną alternatywą dla Go2Shell i obsługuje iTerm2


Domyślny terminal do czego? Po prostu uruchom ten, który chcesz, a drugi zostaw w spokoju ...? Proszę wyjaśnić bardziej szczegółowo, o co pytasz.
Daniel Beck

1
Aplikacja Go2Shell z App Store: Dodano obsługę iTerm, iTerm 2, a nawet xterm :) . Spójrz tylko na jego preferencje. Ponadto, przynajmniej w przypadku Terminal.app, ta funkcja jest częścią systemu operacyjnego od pół roku, patrz tutaj (ostatni element).
Daniel Beck

Och, nie widziałem tego. Moja wina!
politicus

Odpowiedzi:


58

Terminal.appdeklaruje się do obsługi z następujących ssh, telneti x-man-pageschematów URL.

Rejestruje również rozszerzenia plików .term(sesje), .terminal(ustawienia) .tooli .command(skrypty) oraz siebie jako edytor / przeglądarkę tych plików .

Poza tym w OS X nie ma domyślnego terminala. Jest to tylko aplikacja, która może obsługiwać schematy URL i typy plików.


iTerm jest w stanie obsłużyć wszystkie z wyjątkiem specyficznych dla Terminal.app .term/ .terminal.

W przypadku typów plików wystarczy otworzyć okno dialogowe Uzyskaj informacje i powiązać wszystkie pliki tego rodzaju z iTerm. W przypadku schematów URL możesz pobrać i zainstalować panel preferencji Domyślne aplikacje i zmienić tam powiązanie. Możesz także użyć go jako alternatywnej metody zmiany powiązań typów plików.

wprowadź opis zdjęcia tutaj


Wszystkie te ustawienia są specyficzne dla użytkownika i przechowywane w ~/Library/Preferences/com.apple.LaunchServices.plist. Możesz go oczywiście edytować w odpowiednim edytorze. To całkiem proste. Zrzut ekranu Xcode 4 pokazujący wynik zmiany x-man-pagew panelu preferencji Domyślne aplikacje :

wprowadź opis zdjęcia tutaj


Terminal.app zapewnia również następujące usługi dla innych aplikacji:

  • Nowy terminal w folderze
  • Nowa karta Terminal w folderze
  • Otwórz stronę podręcznika w terminalu
  • Przeszukaj strony podręcznika w terminalu

Powiązanie z Terminal.app jest zakodowane na stałe. Musisz stworzyć własne Usługi, np. Używając Automatora i / lub AppleScript, aby je zastąpić.


Jeśli Terminal jest używany za pośrednictwem interfejsu API AppleScript, nie ma sposobu, aby zastąpić go iTerm we wszystkich przypadkach, ponieważ interfejsy API są zupełnie inne. Często będzie to wymagać znacznych zmian w programach lub skryptach.


2
Dziękuję za twoją niesamowitą odpowiedź. Jasne, bardzo pouczające. Nowy w OSX, nie znałem domyślnych aplikacji.
politicus

Niesamowite narzędzie. Cieszę się, że nadal działa dobrze pod El Capitan.
ifwdev

O Boże, to jest bardzo pomocne. Przypadkowo usunąłem Terminal.app (lub spieprzyłem go tak źle, że się nie otworzy) i to działa, aby to naprawić, a moje kompilacje React Native używają iterm do tej pory tak dobrze, powalają na drewno. THX: D
tidelake

64

Powinieneś być w stanie iTerm.appustawić domyślny terminal, wybierając „Ustaw jako domyślny” z paska menu.

Rozwijane menu Plik

Alternatywnie możesz użyć skrótu klawiaturowego.

+ + +\


1
Wydaje się, że nie działa w przypadku większości moich testów. GitHub.app nadal otwiera Terminal, podobnie jak SublimeText.
fregante

5
@ bfred.it: Niestety nazwa elementu menu wprowadza w błąd: jedyne, co robi, to uruchamiać skrypty powłoki otwarte z Findera w iTerm2 zamiast w Terminalu. To będzie nie magicznie powodować aplikacje innych producentów, takich jak GoShell, GitHub, Alfred, ... używać iTerm2, jak wyjaśniono w odpowiedzi Daniel Becka .
mklement0

Myślę, że jest to obecnie najbardziej odpowiednia odpowiedź ...
mecampbellsoup,

7

Jak wspomniano w komentarzach powyżej, Go2Shell może zostać poproszony o użycie iTerm2

Aby otworzyć okno konfiguracji, wykonaj następujące kroki:

  1. Odpal swój ulubiony program terminalowy.
  2. Wpisz: open -a Go2Shell --args config
  3. Naciśnij [powrót].

wprowadź opis zdjęcia tutaj

http://zipzapmac.com/Go2Shell


6

Jak stwierdzono na blogu ma.ttias.be , iTerm2 może zarejestrować się jako domyślny terminal dla niektórych popularnych schematów URL: Wystarczy sprawdzić odpowiednie schematy na samym dole karty Ogólne w bieżącym Profilu w preferencjach iTerm

iTerm> Préférences> Profile> Général> Schematy URL


Najbardziej do rzeczy odpowiedź IMO.
markus

5

Aby przedstawić pragmatyczne podsumowanie istniejących odpowiedzi :

  • macOS (OS X) NIE obsługuje koncepcji domyślnego terminala .

    • Informacje pomocnicze można znaleźć w pomocnej odpowiedzi Daniela Becka .
    • iTerm2sam nieco wprowadza w błąd element menu o nazwieiTerm2 > Make iTerm2 Default Term (jak przedstawiono w odpowiedzi halfcube ), ale jedyną rzeczą, która powoduje, jest to, że Finder uruchamia z niego skrypty powłoki otwarte w iTerm2 (a dokładniej przypisuje shellrolę UTI public.unix-executabledo Findera) - który jest nie typowy przypadek użycia.
  • Dlatego aplikacje należy skonfigurować INDYWIDUALNIE, aby korzystały z iTerm2 zamiast terminala, JEŻELI obsługują :

    • Chociaż Go2Shellaplikacja, która spowodowała pytanie OP, ma okno dialogowe konfiguracji obsługujące iTerm2 (wydaje się open -a Go2Shell -- config, że aplikacja w ogóle nie działa od OSX 10.11.6 (po kliknięciu przycisku paska narzędzi od wersji 2.23, jedyną rzeczą, która zdarza się, że pojawia się okno konfiguracji, nawet po kliknięciu Install Go2Shell to Finder).
    • Zapłacił alternatywa wspomniane przez OP - zgłoszenie ShellTo- obsługuje również iTerm2 w zasadzie , ale jak to pisze nie obsługuje bieżącej wersji, V3 +.

1

To, co opublikował @gef, było częściowo tym, co zrobiłem. Jednak to działało dla mnie.

Otwórz aplikację terminalową:

open -a Go2Shell --args config

Następnie w opcjach skopiuj następujący kod, być może będziesz musiał kliknąć prawym przyciskiem myszy i wkleić, ponieważ polecenia są ograniczone:

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

I voila, aplikacja terminalowa powinna otworzyć dać nowy parametr iTerm, a następnie zamknąć się ponownie.


0

Ten wątek dotyczył systemu OS X Lion i wydaje się nieaktualny dla El Capitan. Ponieważ jednak znalazłem tę stronę, szukając sposobu, aby XCode uruchomił iTerm zamiast Terminalu, pomyślałem, że opublikuję moje rozwiązanie.

Niestety nie jest to bezpłatne, ale można to zrobić za pomocą aplikacji preferencji systemowych Magic Launch . Korzystanie z tego narzędzia, ustawić iTerm jako domyślny dla aplikacji .term, .terminaloraz .commandrozszerzeń. To załatwiło moje potrzeby.

Mam nadzieję że to pomoże!


Czy możesz rozwinąć sposób działania tego oprogramowania? Zobacz Jak polecać oprogramowanie .
Burgi,

Mówisz, że moja odpowiedź już nie działa w El Capitan? Czy możesz to wyjaśnić?
Daniel Beck

0

Po uruchomieniu aplikacji terminalowej możesz uruchomić dowolną komendę, więc aby uruchomić iterm2 zamiast aplikacji terminalowej, możesz utworzyć skrypt, który będzie uruchamiany za każdym razem, gdy terminal zostanie otwarty, a ten skrypt powinien otworzyć iterm i zabić aplikację terminalową

Kroki, aby utworzyć skrypt

  • Vi /Applications/run_iterm.sh
  • Skopiuj następujące polecenia i wklej je w skrypcie

    #! /bin/bash
    open -a iTerm.app
    killall Terminal
    
  • Zapisz plik

  • Chmod 755 /Applications/run_iterm.sh

Teraz nasz skrypt jest gotowy, ostatnim krokiem jest uruchomienie go przy każdym otwarciu aplikacji terminalu Uruchom terminal Przejdź do preferencji -> Ogólne -> otwórz powłokę za pomocą -> wybierz polecenie „pełna ścieżka” i wklej /Applications/./run_iterm. sh wewnątrz podręcznika, w końcu zamknij aplikację terminala i uruchom ją ponownie, wprowadź opis obrazu tutaj


1
Łał; konfigurowanie programu do automatycznego zabijania się przy każdym uruchomieniu. Co może pójść nie tak? :-( ⁠
Scott
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.