Configurando o iTerm2 como o terminal padrão (OSX Lion)

61

Gostaria de definir o iTerm2 em vez do terminal.app como meu terminal padrão.

O Go2Shell, por exemplo, permite abrir um terminal para o diretório atual no Finder. Quero usar o iterm2 instad do terminal.app.

Não encontrei nenhuma resposta na documentação oficial.

Obrigado pela ajuda.

Atualização: ShellTo é uma ótima alternativa ao Go2Shell e suporta o iTerm2

politicus
fonte
Terminal padrão para quê? Você acabou de lançar o que você quer e deixar o outro em paz ...? Por favor, explique com mais detalhes o que você está perguntando.
Daniel Beck
11
Destaque do Go2Shell na loja de aplicativos: Adicionado suporte ao iTerm, iTerm 2 e até xterm :) . Basta dar uma olhada em suas preferências. Além disso, pelo menos para o Terminal.app, esse recurso faz parte do sistema operacional há meio ano, veja aqui (último item).
Daniel Beck
Oh, eu não vi. Minha culpa!
Politicus

Respostas:

58

Terminal.appdeclara-se um manipulador do ssh, telnete x-man-pageesquemas de URL.

Ele também registra as extensões de arquivo .term(sessões), .terminal(configurações) .toole .command(scripts), e ele próprio como um editor / visualizador para elas.

Fora isso, não há terminal padrão no OS X. É apenas um aplicativo que pode lidar com esquemas de URL e tipos de arquivo.


O iTerm é capaz de lidar com tudo isso, exceto o Terminal.app específico .term/ .terminal.

Para os tipos de arquivo, basta abrir a caixa de diálogo Obter informações e associar todos os arquivos desse tipo ao iTerm. Para os esquemas de URL, você pode baixar e instalar o Painel de preferências Aplicativos padrão e alterar a associação. Você também pode usá-lo como um método alternativo de alterar as associações de tipo de arquivo.

insira a descrição da imagem aqui


Todas essas configurações são específicas do usuário e armazenadas ~/Library/Preferences/com.apple.LaunchServices.plist. É claro que você pode editá-lo em um editor adequado. É bem direto. Captura de tela do Xcode 4 mostrando o resultado da alteração x-man-pageno painel de preferências Aplicativos padrão :

insira a descrição da imagem aqui


O Terminal.app também fornece os seguintes serviços para outros aplicativos:

  • Novo terminal na pasta
  • Nova guia Terminal na pasta
  • Abrir página de manual no Terminal
  • Pesquisar páginas de manual no Terminal

A associação com o Terminal.app é codificada. Você precisa criar seus próprios serviços, por exemplo, usando o Automator e / ou AppleScript para substituí-los.


Se o Terminal for usado por meio da API AppleScript, não há como substituí-lo pelo iTerm em todos os casos, pois as APIs são bem diferentes. Isso geralmente exige alterações substanciais nos programas ou scripts que fazem isso.

Daniel Beck
fonte
2
Obrigado pela sua resposta incrível. Claro, muito informativo. Novo no OSX, eu não conhecia os aplicativos padrão.
Politicus
Ferramenta incrível. Ainda bem que ainda funciona bem sob El Capitan.
ifwdev
Oh Deus, isso é tão útil. Eu apaguei acidentalmente o Terminal.app (ou estraguei tanto que ele não abre) e isso funciona para corrigir isso, e minhas compilações do React Native estão usando o iterm até agora tão bom, bata na madeira. THX: D
tidelake 14/06
64

Você deve conseguir o iTerm.appseu terminal padrão selecionando "Tornar padrão" na barra de menus.

Menu suspenso Arquivo

Como alternativa, você pode usar um atalho de teclado.

+ + +\

halfcube
fonte
11
Parece não funcionar na maioria dos meus testes. O GitHub.app ainda abre o Terminal e o SublimeText.
fregante
5
@ bfred.it: Infelizmente, o nome do item de menu é enganador: a única coisa que ele faz é executar scripts de shell abertos no Finder no iTerm2 em vez de no Terminal. Ele vai não magicamente fazer com que aplicativos de terceiros, tais como GoShell, GitHub, Alfred, ... usar iTerm2, conforme explicado na resposta de Daniel Beck .
precisa saber é o seguinte
Penso que esta é a resposta mais adequada hoje em dia ...
mecampbellsoup
7

Conforme mencionado nos comentários acima, o Go2Shell pode ser instruído a usar o iTerm2

Para abrir a janela de configuração, siga estas etapas:

  1. Inicie seu programa de terminal favorito.
  2. Digite: open -a Go2Shell --args config
  3. Pressione [voltar].

insira a descrição da imagem aqui

http://zipzapmac.com/Go2Shell

gef
fonte
6

Conforme encontrado no blog ma.ttias.be , o iTerm2 pode se registrar como o terminal padrão para alguns esquemas de URL comuns: você só precisa verificar os esquemas correspondentes na parte inferior da guia Geral no perfil atual, nas preferências do iTerm

iTerm> Preferências> Perfis> Geral> Esquemas de URL

Loranger
fonte
Mais ao ponto, responda à IMO.
Markus
5

Para fornecer um resumo pragmático das respostas existentes :

  • O macOS (OS X) NÃO suporta o conceito de terminal padrão .

    • Veja a resposta útil de Daniel Beck para obter informações básicas.
    • iTerm2de maneira enganosa, oferece um item de menu chamadoiTerm2 > Make iTerm2 Default Term (conforme apresentado na resposta do halfcube ), mas a única coisa que faz é fazer com que o Finder execute scripts de shell abertos a partir dele no iTerm2 (mais especificamente, ele atribui a shellfunção da UTI public.unix-executableao Finder) - que é não é um caso de uso típico.
  • Portanto, os aplicativos devem ser configurados INDIVIDUALMENTE para usar o iTerm2 em vez do Terminal, se eles suportarem :

    • Embora o Go2Shellaplicativo que solicitou a pergunta do OP tenha uma caixa de diálogo de configuração compatível com o iTerm2 ( open -a Go2Shell -- config, o aplicativo parece não funcionar no OSX 10.11.6 (ao clicar no botão da barra de ferramentas da v2.23, a única coisa que sempre acontece é que a caixa de diálogo de configuração aparece, mesmo depois de clicar Install Go2Shell to Finder).
    • A alternativa paga mencionada pelo OP - aplicativo ShellTo- também suporta o iTerm2 em princípio , mas, até o momento, este documento não suporta a versão atual , v3 +.
mklement0
fonte
1

O que o @gef postou foi parcialmente o que eu fiz. No entanto, é isso que funcionou para mim.

Abra seu aplicativo de terminal:

open -a Go2Shell --args config

Em seguida, nas opções copie o código a seguir, talvez seja necessário clicar com o botão direito do mouse e colar, pois os comandos são restritos:

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

E pronto, o aplicativo do terminal deve abrir, dar um novo parâmetro ao iTerm e fechar-se novamente.

Jan
fonte
0

Este tópico foi para o OS X Lion e parece desatualizado para o El Capitan. No entanto, como encontrei esta página enquanto procurava uma maneira de o XCode iniciar o iTerm em vez do Terminal, pensei em publicar minha solução.

Infelizmente, não é gratuito, mas pode ser feito usando o aplicativo de preferências do sistema Magic Launch . Utilizando essa ferramenta, eu definir iTerm como o aplicativo padrão para .term, .terminale .commandextensões. Isso fez o truque para as minhas necessidades.

Espero que isto ajude!

Erik
fonte
Você pode expandir como esse software funciona? Consulte Como recomendar software .
Burgi 12/10
Você está dizendo que minha resposta não funciona mais para El Capitan? Você poderia esclarecer?
Daniel Beck
0

Você pode executar qualquer comando assim que o aplicativo de terminal for executado, para executar iterm2 em vez do aplicativo de terminal, você pode criar um script que seja executado sempre que o terminal for aberto e esse script deve abrir o iterm e matar o aplicativo de terminal

Etapas para criar script

  • Vi /Applications/run_iterm.sh
  • Copie os seguintes comandos e cole-os no script

    #! /bin/bash
    open -a iTerm.app
    killall Terminal
    
  • Salve o arquivo

  • Chmod 755 /Applications/run_iterm.sh

Agora nosso script está pronto, o último passo é executá-lo sempre que o aplicativo de terminal for aberto. Execute o terminal Vá para Preferências -> Geral -> Shell aberto com -> selecione o comando "caminho completo" e cole /Applications/./run_iterm. sh dentro do livro finalmente feche o aplicativo de terminal e execute-o novamente, digite a descrição da imagem aqui

Mohammed SA Kwaik
fonte
11
Uau; configurar um programa para se matar automaticamente sempre que for iniciado. O que poderia dar errado? :-( ⁠
Scott