macos - start - Abra o terminal aqui no localizador do Mac OS




terminal mac folder (10)

Existe algo semelhante ao "Abrir janela de comando aqui" Windows Powertoy para Mac OS? Eu encontrei um par de plugins através de uma pesquisa no google, mas queria ver o que funciona melhor para os desenvolvedores lá fora.


É um pouco mais do que você está pedindo, mas eu recomendo o Cocoatech's Path Finder 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/


A partir do Mac OS X Lion 10.7, o Terminal inclui exatamente essa funcionalidade como um Serviço. Como na maioria dos Serviços, eles são desativados por padrão, portanto, é necessário ativá-lo para que ele apareça no menu Serviços.

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

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

Você pode até mesmo atribuir chaves de comando a elas.

Os serviços aparecem no submenu Serviços de cada menu do aplicativo e dentro do menu contextual (Control-Click ou Right-Click 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 ter a pasta aberta e executar o serviço "no lugar". Volte para a pasta pai, selecione a pasta relevante e ative o serviço através do menu Serviços ou do menu de contexto.

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

Finalmente, se você arrastar uma pasta ou um nome de caminho para uma guia (na barra de guias) e o processo de foreground for o shell, ele executará automaticamente um comando "cd". (Arrastar para a vista de terminal dentro da aba simplesmente insere o nome do caminho por conta própria, como nas versões mais antigas do Terminal.)

Você também pode fazer isso a partir da linha de comando ou de um script de shell:

open -a Terminal /path/to/folder

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

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


Confira o Open Terminal Aqui . Pode ser o mais semelhante a "Abrir janela de comando aqui". Eu usei >cdto e isso é muito semelhante, mas isso parece ser um pouco melhor em lidar com o Spaces ... mas não perfeito.

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

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


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

Eu adicionei o seguinte ao meu .bash_profile para que eu possa digitar o cdff no Terminal 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 [email protected]`"; };

Esta é a dica do terminal macosxhints.com .


Eu 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


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 aba (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 em 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 frontal se ela não estiver ocupada, por exemplo, executando um comando, exibindo uma página man ou executando o emacs.

Há um bug no AppleScript no OSX 10.6. (2 janelas do terminal abertas). Eu consertei isso adicionando o comando fechar 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

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

Enfim, eu encontrei a instalação do pacote pos via Fink (um pré-requisito, neste caso, talvez haja algo similar para quem usa MacPorts?) Para ser a solução mais fácil. Você tem dois comandos:

  1. posd - que fornece o diretório atual da janela mais avançada do Finder (para a qual você presumivelmente cria um alias cdf = cd posd)
  2. fdc - que alterna o diretório atual da janela mais avançada do Finder para o terminal pwd. Isso é um pouco diferente de "aberto". que sempre abre uma nova janela de localização.

Sim, você tem que mudar para a janela do Terminal antes de escrever o cdf, mas suponho que seja muito barato comparando ao clicar em um botão na barra de ferramentas do Finder. E funciona também com o iTerm, você não precisa baixar um botão separado da barra de ferramentas do Finder que abre uma janela do iTerm. Esta é a mesma abordagem proposta por PCheese, mas você não precisa confundir seu .bash_profile.


Se você instalar Big Cat Scripts ( http://www.ranchero.com/bigcat/ ), poderá adicionar seus próprios itens de menu contextual (clique com o botão direito). Eu não acho que ele vem com um Open Terminal Here mas eu uso este script (que eu honestamente não me lembro se eu escrevi a mim mesmo, ou tirei do 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 similares também podem obter o caminho completo para um arquivo clicando com o botão direito, o que é ainda mais útil, eu acho.


Um aplicativo que eu acho indispensável como alternativa é o DTerm , que na verdade abre um mini terminal diretamente em seu aplicativo. Além disso, funciona com praticamente tudo - Finder, XCode, PhotoShop, etc.







finder