Pergunta

Existe algo semelhante a "janela de comando Abrir 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.

Foi útil?

Solução

A partir do Mac OS X Lion 10.7, Terminal inclui exatamente essa funcionalidade como um serviço. Tal como acontece com a maioria dos serviços, estes são desativados por padrão, então você precisa para permitir que isso fazê-lo aparecer no menu Serviços.

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

Habilitar Novo Terminal de pasta . Há também Tab novo terminal no pasta , que irá criar uma aba na janela Terminal frontmost (se houver, então ele irá criar uma nova janela). Estes serviços funcionam em todas as aplicações, não apenas Finder, e eles operam em pastas, bem como caminhos absolutos selecionados no texto.

Você também pode atribuir teclas de comando para eles.

Serviços aparecem nos Serviços submenu de cada menu do aplicativo, e dentro do menu contextual (Control-clique ou clique direito em uma pasta ou caminho).

O Terminal Novo na pasta serviço ficará activo quando você seleciona uma pasta no Finder. Você não pode simplesmente ter a pasta aberto e executar o serviço "no lugar". Volte para a pasta principal, selecione a pasta relevante, em seguida, ativar o serviço através do menu menu Serviços ou contexto.

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

Finalmente, se você arrastar uma pasta ou caminho para um guia (na barra de guia) e o processo de primeiro plano é o shell, ele irá executar automaticamente um comando "cd". (Arrastar para a exibição terminal dentro da aba apenas insere o 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 um script shell:

open -a Terminal /path/to/folder

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

Em uma nota relacionada, Terminal Lion também tem novos serviços para procurar páginas man: página Abrir homem no Terminal exibe a página man Tema selecionado em uma nova janela de terminal, e homem Buscar páginas na Terminal executa "a propósito" no texto selecionado. O ex-também entende referências de página homem ( "open (2)") URLs, os argumentos de linha de comando página de manual ( "2 aberto") e página man ( "x-man-page: // 2 / open").

Outras dicas

Este:

https://github.com/jbtule/cdto#cd-to

É um pequeno aplicativo que você arrastar para a barra de ferramentas do Finder, o ícone se encaixa muito bem. Ele funciona com o Terminal, xterm (sob X11), iterm.

Um aplicativo que eu achei indispensável como uma alternativa é DTerm , que na verdade abre uma mini-direita do terminal na sua aplicação. Além disso, ele funciona com quase tudo lá fora -. Finder, XCode, Photoshop, etc

Esclarecimento (graças @ vgm64): se você já está no Terminal, este permite alterar rapidamente a janela de nível superior do Finder sem deixar Terminal. Dessa forma, você pode evitar o uso do mouse.

Eu adicionei o seguinte ao meu .bash_profile para que eu possa digitar 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 $@`"; };

Esta é a partir este macosxhints.com Terminal dica .

Confira Abra o Terminal Aqui . Pode ser o mais semelhante ao "Open janela de comando aqui." Eu costumava >cdto e isso é muito semelhante, mas este parece ser um pouco melhor em lidar com espaços ... mas não perfeito.

O que ele tem que é muito interessante é a capacidade de " detectar key-down eventos no início da aplicação e os usou para modificar o comportamento do script ", permitindo que o script para abrir uma nova aba na janela mais terminal da frente quando invocado segurando a tecla ?. truque.

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

Há uma versão atualizada do muito agradável e elegante Open Terminal Aqui postado por vgm64 e d0k . A mudança foi feita por james david baixo . Ele publicou a nova versão no seu local . Basta baixar OpenTerminalHere.zip, extraí-lo, mova o pacote para o seu / Scripts Biblioteca e arraste-lo de lá para sua barra de ferramentas do Finder.

O que é especial sobre ele é que ele sempre abre uma nova aba se uma janela Terminal.app já está aberto. Muito útil! Eu também observou que o estilo do botão da aplicação melhor se encaixa no estilo Snow Leopard Finder.app que cdto postado por editada fez.

Além disso, você pode copiar um item do Finder usando o comando-C, salto para o Terminal tipo 'cd' e simplesmente colar com o comando-v

(por exemplo, usando o Spotlight ou QuickSilver)

Eu criei um pacote com 3 aplicativos para a barra de ferramentas do Finder. Os outros dois aplicativos fazer:

  • Textmate aberta com a seleção atual
  • aberto gitx com a pasta actual

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

Se você instalar Scripts Big Cat ( http://www.ranchero.com/bigcat/) você pode adicionar o seu próprio menu contextual () itens do botão direito. Eu não acho que ele vem com um Terminal Abra Aqui applescript mas eu uso este script (que eu honestamente não me lembro se eu mesmo escrevi, ou levantado 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

roteiros semelhantes também pode obter-lhe o caminho completo para um arquivo no botão direito do mouse, o que é ainda mais útil, eu acho.

É um pouco mais do que você está pedindo, mas eu recomendo do Cocoatech Path Finder para quem deseja Finder tinha um pouco mais suco. Ele inclui um botão barra de ferramentas para abrir uma janela de terminal para o diretório atual, ou um painel retrátil com uma linha de comando Terminal na parte inferior de cada janela do Finder. Além de muitas outras características que eu agora não pode viver sem. Muito maduro, software estável. http://cocoatech.com/

Ok, eu percebo que este é um pouco tarde ... talvez esta alternativa não estava disponível no momento de escrever o post?

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

  1. posd - que dá o diretório atual da janela do Finder o primeiro plano (para o qual você provavelmente fazer um cdf alias = cd posd)
  2. FDC - que muda o diretório atual da janela do Finder do frontmost ao pwd Terminal. Isso é um pouco diferente de 'open'. que sempre abre uma nova janela do Finder.

Sim, você tem que mudar para a janela Terminal antes de escrever cdf, mas suponho que é muito barato em comparação com clicar em um botão na barra de ferramentas do Finder. E funciona com iTerm bem, você não tem que baixar um botão da barra de ferramentas do Finder separado que abre uma janela iTerm. Esta é a mesma abordagem como proposto por PCheese, mas você não tem que encher o seu .bash_profile.

Se gosta de mim você desligar a barra de ferramentas do Finder, este Serviço acrescenta um item ao menu contextual de cada pasta: http://blog.leenarts.net/2009/09/03/open-service-here/

Isso também permite que você abra qualquer pasta que você vê no Finder exibição de árvore.

Eu use 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 para um script como os abaixo.

Reuse uma guia existente ou criar 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

Reuse uma guia existente ou criar uma nova página (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 criar uma nova página (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 roteiros têm duas vantagens em comparação com os serviços de valor acrescentado em 10,7:

  • Eles usam a pasta na barra de título em vez de exigir que você selecione uma pasta pela primeira vez.
  • Eles reutilizar o guia mais à frente se não estiver ocupado, por exemplo, execução de um comando, exibindo uma página de homem, ou correr emacs.

Há um erro no AppleScript no OSX 10.6. (2 janelas de terminal aberto). Eu reparei isso adicionando o comando de fechamento após activate. Este fim a primeira janela de 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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top