Abra o terminal aqui no localizador de Mac OS [fechado]


682

Existe algo semelhante ao "Abrir janela de comando aqui" do Windows Powertoy para Mac OS? Eu encontrei alguns plugins através de uma pesquisa no Google, mas queria ver o que funciona melhor para os desenvolvedores por aí.


Respostas:


900

No Mac OS X Lion 10.7, o Terminal inclui exatamente essa funcionalidade como serviço. Como na maioria dos Serviços, eles são desativados por padrão, portanto, você precisará habilitá-lo para que apareça no menu Serviços.

Preferências do Sistema> Teclado> Atalhos> Serviços

Ative o novo terminal na pasta . Há também a nova guia Terminal na pasta , que criará uma guia na janela frontal do Terminal (se houver, caso contrário, criará uma nova janela). Esses serviços funcionam em todos os aplicativos, não apenas no Finder, e operam em pastas e nomes de caminhos absolutos selecionados no texto.

Você pode até atribuir chaves de comando a eles.

Os serviços aparecem no submenu Serviços de cada menu do aplicativo e dentro do menu contextual (clique com a tecla Control pressionada ou com o botão direito do mouse em uma pasta ou nome de caminho).

O serviço Novo terminal na pasta ficará ativo quando você selecionar uma pasta no Finder. Você não pode simplesmente abrir a pasta e executar o serviço "no local". Volte para a pasta pai, selecione a pasta relevante e ative o serviço através do menu Serviços ou menu de contexto.

Além disso, o Lion Terminal abrirá uma nova janela de terminal se você arrastar uma pasta (ou nome do caminho) para o ícone do aplicativo Terminal e também pode arrastar para a barra de guias de uma janela existente para criar uma nova guia.

Por fim, se você arrastar uma pasta ou nome de caminho para uma guia (na barra de guias) e o processo em primeiro plano for o shell, ele executará automaticamente um comando "cd". Arrastar para a visualização do terminal na guia apenas insere o nome do caminho por conta própria, como nas versões mais antigas do Terminal.

Você também pode fazer isso na linha de comando ou em um script de shell:

open -a Terminal /path/to/folder

É o equivalente na linha de comando de arrastar uma pasta / nome do caminho para o ícone do aplicativo Terminal.

Em uma nota relacionada, o Lion Terminal também possui novos Serviços para procurar páginas de manual: A página de manual aberta no Terminal exibe o tópico da página de manual selecionado em uma nova janela do terminal, e Pesquisar páginas de manual no Terminal executa "apropos" no texto selecionado. O primeiro também entende referências da página de manual ("open (2)"), argumentos da linha de comando da página de manual ("2 open") e URLs da página de manual ("x-man-page: // 2 / open").


8
Não funciona em Yosemite.
Olcay Ertaş

2
@ OlcayErtaş O que não funciona? Tudo na minha resposta funciona no Yosemite 10.10.x.
Chris Page

2
Preciso reiniciar o Finer? Não sei por que, mas habilitei o serviço New Terminal at Folder, mas não funcionou.
Olcay Ertaş

13
@ OlcayErtaş você precisa clicar com o botão direito do mouse no ícone de uma pasta para obter o item de menu; não navegue para a pasta em si, mas para o pai.
Jonathan Landrum

2
Eu posso usá-lo através do clique com o botão direito / serviços, mas não posso usá-lo através dos atalhos do teclado.
Pode Poyrazoğlu


56

Um aplicativo que considero indispensável como alternativa é o DTerm , que na verdade abre um mini terminal diretamente no seu aplicativo. Além disso, funciona com praticamente tudo o que há por aí - Finder, XCode, PhotoShop, etc.


38

Esclarecimento (obrigado @ vgm64): se você já está no Terminal, isso permite que você mude rapidamente para a janela superior do Finder sem sair do Terminal. Dessa forma, você pode evitar o uso do mouse.

Adicionei o seguinte ao meu .bash_profilepara que eu possa digitar o cdffTerminal a qualquer momento.

function ff { osascript -e 'tell application "Finder"'\
 -e "if (${1-1} <= (count Finder windows)) then"\
 -e "get POSIX path of (target of window ${1-1} as alias)"\
 -e 'else' -e 'get POSIX path of (desktop as alias)'\
 -e 'end if' -e 'end tell'; };\

function cdff { cd "`ff $@`"; };

É desta dica do terminal macosxhints.com .


abre uma nova janela do Finder no diretório atual
jolvi

2
@jolvi é o oposto do que essa resposta fornece. O ponto não é abrir uma janela do localizador em pwd, mas cdpara o diretório em que o localizador está aberto.
Jonathan Landrum

ah, desculpe, é claro que você está certo.
jolvi

14

Verificação de saída Terminal Aberto Aqui . Pode ser o mais semelhante a "Abrir janela de comando aqui". eu usei>cdto e isso é muito parecido, mas isso parece ser um pouco melhor para lidar com o Spaces ... mas não é perfeito.

O que tem de bom é a capacidade de " detectar eventos de pressionamento de tecla no início do aplicativo e usá-los para modificar o comportamento do script ", permitindo que o script abra uma nova guia na janela mais frontal do terminal quando invocado mantendo pressionada a tecla.. Truque legal.

Observe também a resposta de PCheese; provavelmente é mais útil para usuários pesados ​​de terminais!


12

Existe uma versão atualizada do muito agradável e fino Terminal Aberto Aqui postado por vgm64 e d0k . A mudança foi feita por James David Low . Ele publicou a nova versão em seu site . Basta baixar o OpenTerminalHere.zip, extraí-lo, mover o pacote para a pasta Biblioteca / Scripts e arrastá-lo para a barra de ferramentas do Finder.

O que é especial é que ele sempre abre uma nova guia se uma janela Terminal.app já estiver aberta. Muito útil! Também observei que o estilo do botão do aplicativo se encaixa melhor no estilo Snow Leopard Finder.app do que o cdto postado por redigido .


Isso é incrível! Observe que você precisa Command + Drag (não basta arrastar como indicado na postagem acima) para a barra de ferramentas do Finder. E então você tem um atalho de ícone que, quando clicado, termina em qualquer pasta.
B. Nadolson

10

Além disso, você pode copiar um item do localizador usando o comando-C, pular para o Terminal (por exemplo, usando o Spotlight ou o QuickSilver), digite 'cd' e simplesmente cole com o comando-v


4

Criei um pacote com 3 aplicativos para a barra de ferramentas do localizador. Os outros dois aplicativos fazem:

  • abra o Textmate com a seleção atual
  • abra o GitX com a pasta atual

Para mais informações, consulte aqui: http://nslog.de/posts/71


3

Se você instalar o Big Cat Scripts ( http://www.ranchero.com/bigcat/ ), poderá adicionar seus próprios itens de menu contextual (clique com o botão direito do mouse). Eu não acho que ele seja fornecido com um AppleScript Open Terminal Here, mas eu uso esse script (do qual não me lembro honestamente se eu mesmo escrevi ou usei o exemplo de outra pessoa):


on main(filelist)
    tell application "Finder"
        try
            activate
            set frontWin to folder of front window as string
            set frontWinPath to (get POSIX path of frontWin)
            tell application "Terminal"
                activate
                do script with command "cd \"" & frontWinPath & "\""
            end tell
        on error error_message
            beep
            display dialog error_message buttons ¬
                {"OK"} default button 1
        end try
    end tell
end main

Scripts semelhantes também podem fornecer o caminho completo para um arquivo com o botão direito, o que é ainda mais útil, eu acho.


3

É um pouco mais do que você está pedindo, mas recomendo o Path Finder da Cocoatech para quem deseja que o Finder tenha um pouco mais de suco. Ele inclui um botão da barra de ferramentas para abrir uma janela do Terminal para o diretório atual ou um painel retrátil com uma linha de comando do Terminal na parte inferior de cada janela do Finder. Além de muitos outros recursos que agora não posso viver sem. Software muito maduro e estável. http://cocoatech.com/


2

Ok, eu sei que isso é um pouco tarde ... talvez essa alternativa não estivesse disponível no momento de escrever o post?

Enfim, eu achei a instalação do pacote pos via Fink (um pré-requisito nesse caso, talvez exista algo semelhante para quem usa o MacPorts?) Como a solução mais fácil. Você recebe dois comandos:

  1. posd - que fornece o diretório atual da janela do Finder mais à frente (para a qual você provavelmente cria um pseudônimo cdf = cd posd)
  2. fdc - que alterna o diretório atual da janela do Finder mais à frente para o terminal pwd. Isso é um pouco diferente de 'aberto'. que sempre abre uma nova janela do localizador.

Sim, você precisa alternar para a janela Terminal antes de escrever cdf, mas suponho que seja bastante barato se você clicar em um botão na barra de ferramentas do Finder. E também funciona com o iTerm, você não precisa baixar um botão separado da barra de ferramentas do Finder que abre uma janela do iTerm. Essa é a mesma abordagem proposta pelo PCheese, mas você não precisa desorganizar o seu .bash_profile.



1

Eu principalmente uso esta função:

cf() {
  cd "$(osascript -e 'tell app "Finder" to POSIX path of (insertion location as alias)')"
}

Você também pode atribuir um atalho a um script como os abaixo.

Reutilize uma guia existente ou crie uma nova janela (Terminal):

tell application "Finder" to set p to POSIX path of (insertion location as alias)
tell application "Terminal"
    if (exists window 1) and not busy of window 1 then
        do script "cd " & quoted form of p in window 1
    else
        do script "cd " & quoted form of p
    end if
    activate
end tell

Reutilize uma guia existente ou crie uma nova guia (Terminal):

tell application "Finder" to set p to POSIX path of (insertion location as alias)
tell application "Terminal"
    if not (exists window 1) then reopen
    activate
    if busy of window 1 then
        tell application "System Events" to keystroke "t" using command down
    end if
    do script "cd " & quoted form of p in window 1
end tell

Sempre crie uma nova guia (iTerm 2):

tell application "Finder" to set p to POSIX path of (insertion location as alias)
tell application "iTerm"
    if exists current terminal then
        current terminal
    else
        make new terminal
    end if
    tell (launch session "Default") of result to write text "cd " & quoted form of p
    activate
end tell

Os dois primeiros scripts têm duas vantagens em comparação com os serviços adicionados na versão 10.7:

  • Eles usam a pasta na barra de título em vez de exigir que você selecione uma pasta primeiro.
  • Eles reutilizam a guia mais à frente, se não estiver ocupada, por exemplo, executando um comando, exibindo uma página de manual ou executando o emacs.

0

Há um erro no AppleScript no OSX 10.6. (2 janelas do terminal abertas). Corrigi isso adicionando o comando close após ativar. Isso fecha a primeira janela do terminal.

on run
    tell application "Finder"
        try
            activate
            set frontWin to folder of front window as string
            set frontWinPath to (get POSIX path of frontWin)
            tell application "Terminal"
                activate
                close
                do script with command "cd \"" & frontWinPath & "\""
            end tell
        on error error_message
            beep
            display dialog error_message buttons ¬
                {"OK"} default button 1
        end try
    end tell
end run

2
Por que você deseja fechar uma janela do Terminal? Isso não destruirá o trabalho que você estava fazendo nele?
Rob Kennedy
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.