it-swarm.com.de

Öffnen Sie das Terminal hier im Mac OS Finder

Gibt es etwas, das dem Windows Powertoy für Mac OS "Befehlsfenster hier öffnen" ähnlich ist? Ich habe ein paar Plugins über eine Google-Suche gefunden, wollte aber herausfinden, was für Entwickler da draußen am besten funktioniert.

682
Abdullah Jibaly

Ab Mac OS X Lion 10.7 bietet Terminal genau diese Funktionalität als Service. Wie bei den meisten Diensten sind diese standardmäßig deaktiviert. Sie müssen sie daher aktivieren, damit sie im Menü Dienste angezeigt werden.

Systemeinstellungen> Tastatur> Verknüpfungen> Dienste

Aktivieren Sie Neues Terminal im Ordner. Es gibt auch Neuer Terminal-Tab im Ordner, wodurch ein Tab im vordersten Terminal-Fenster erstellt wird (falls vorhanden, wird sonst ein neues Fenster erstellt). Diese Dienste funktionieren in allen Anwendungen, nicht nur in Finder, und sie können sowohl auf Ordner als auch auf im Text ausgewählte absolute Pfadnamen angewendet werden.

Sie können ihnen sogar Befehlstasten zuweisen.

Dienste werden im Untermenü "Dienste" jedes Anwendungsmenüs und im Kontextmenü (Klicken mit gedrückter Ctrl-Taste oder Rechtsklick auf einen Ordner oder Pfadnamen) angezeigt.

Der Dienst Neues Terminal im Ordner wird aktiv wenn Sie einen Ordner auswählen im Finder. Sie können den Ordner nicht einfach öffnen und den Dienst "an Ort und Stelle" ausführen. Gehen Sie zurück zum übergeordneten Ordner, wählen Sie den entsprechenden Ordner aus und aktivieren Sie den Dienst über das Menü Dienste oder das Kontextmenü.

Außerdem öffnet Lion Terminal ein neues Terminalfenster, wenn Sie einen Ordner (oder Pfadnamen) auf das Terminal-Anwendungssymbol ziehen. Sie können auch in die Registerkartenleiste eines vorhandenen Fensters ziehen, um eine neue Registerkarte zu erstellen.

Wenn Sie einen Ordner oder Pfadnamen auf eine Registerkarte (in der Registerkartenleiste) ziehen und der Vordergrundprozess die Shell ist, wird automatisch ein "cd" -Befehl ausgeführt. (Durch Ziehen in die Terminalansicht innerhalb der Registerkarte wird lediglich der Pfadname für sich allein eingefügt, wie in älteren Versionen von Terminal.)

Sie können dies auch über die Befehlszeile oder ein Shell-Skript tun:

open -a Terminal /path/to/folder

Dies ist das Befehlszeilenäquivalent zum Ziehen eines Ordners/Pfadnamens auf das Terminalanwendungssymbol.

Darüber hinaus bietet Lion Terminal neue Dienste zum Nachschlagen von Manpages: Manpage in Terminal öffnen zeigt das ausgewählte Manpage-Thema in einem neuen Terminalfenster an und Manpages in durchsuchen) Terminal führt "apropos" für den ausgewählten Text aus. Ersterer versteht auch Manpage-Referenzen ("open (2)"), Manpage-Befehlszeilenargumente ("2 open") und Manpage-URLs ("x-man-page: // 2/open").

900
Chris Page

Diese:

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

Es ist eine kleine App, die Sie in die Finder-Symbolleiste ziehen, das Symbol passt sehr gut. Es funktioniert mit Terminal, xterm (unter X11), iterm.

153
redacted

Eine Anwendung, die ich als Alternative für unabdingbar befunden habe, ist DTerm , die tatsächlich ein Mini-Terminal direkt in Ihrer Anwendung öffnet. Außerdem funktioniert es mit so gut wie allem - Finder, XCode, PhotoShop usw.

56
Paul Alexander

Klarstellung (danke @ vgm64): Wenn Sie bereits im Terminal sind, können Sie schnell zum obersten Finder-Fenster wechseln, ohne das Terminal zu verlassen. Auf diese Weise können Sie die Verwendung der Maus vermeiden.

Ich habe meinem .bash_profile Folgendes hinzugefügt, damit ich jederzeit cdff in Terminal eingeben kann.

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]`"; };

Dies ist von dieser Terminal-Hinweis von macosxhints.com .

38
PCheese

Check out Terminal hier öffnen . Möglicherweise ist es dem Befehl "Befehlsfenster hier öffnen" am ähnlichsten. Ich habe >cdto verwendet und das ist sehr ähnlich, aber das scheint ein bisschen besser im Umgang mit Leerzeichen zu sein ... aber nicht perfekt.

Sehr schön ist die Fähigkeit, " Tastendruckereignisse beim Start der Anwendung zu erkennen und damit das Verhalten des Skripts zu ändern "Ermöglichen, dass das Skript eine neue Registerkarte im vordersten Terminalfenster öffnet, wenn es durch Halten der Taste ⌘ aufgerufen wird. Ordentlicher Trick.

Beachten Sie auch die Antwort von PCheese; es ist wahrscheinlich nützlicher für schwere Terminalbenutzer!

14
physicsmichael

Es gibt eine aktualisierte Version des sehr netten und schlanken offenen Terminals Hier gepostet von vgm64 und d0k . Die Änderung wurde von James David Low vorgenommen. Er veröffentlichte die neue Version auf seiner Website . Laden Sie einfach OpenTerminalHere.Zip herunter, extrahieren Sie es, verschieben Sie das Bundle in Ihren Library/Scripts-Ordner und ziehen Sie es von dort in Ihre Finder-Symbolleiste.

Das Besondere daran ist, dass es immer einen neuen Tab öffnet , wenn bereits ein Terminal.app-Fenster geöffnet ist. Sehr hilfreich! Ich habe auch festgestellt, dass der Stil der Schaltfläche der Anwendung besser zum Stil von Snow Leopard Finder.app passt als der von redigierte .

12
pklaus

Sie können ein Objekt auch mit Befehl-C aus dem Finder kopieren, in das Terminal springen (z. B. mit Spotlight oder QuickSilver), 'cd' eingeben und einfach mit Befehl-v einfügen

10
Henrik Hartz

Ich habe ein Paket mit 3 Apps für die Finder-Symbolleiste erstellt. Die anderen beiden Apps machen:

  • öffne Textmate mit der aktuellen Auswahl
  • öffne GitX mit dem aktuellen Ordner

Weitere Informationen finden Sie hier: http://nslog.de/posts/71

4
stigi

Wenn Sie Big Cat Scripts ( http://www.ranchero.com/bigcat/ ) installieren, können Sie Ihre eigenen Kontextmenüelemente (Rechtsklick) hinzufügen. Ich glaube nicht, dass es mit einem Open Terminal Here-Applescript geliefert wird, aber ich verwende dieses Script (an das ich mich ehrlich gesagt nicht erinnere, wenn ich selbst geschrieben oder aus dem Beispiel eines anderen entnommen habe):


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

Ähnliche Skripte können Ihnen auch den vollständigen Pfad zu einer Datei per Rechtsklick anzeigen, was, wie ich finde, noch nützlicher ist.

3
iayork

Es ist ein bisschen mehr als Sie verlangen, aber ich empfehle Cocoatechs Path Finder jedem, der wünscht, der Finder hätte ein bisschen mehr Saft. Es enthält eine Symbolleistenschaltfläche zum Öffnen eines Terminalfensters für das aktuelle Verzeichnis oder einen einklappbaren Bereich mit einer Terminalbefehlszeile am unteren Rand jedes Finder-Fensters. Und viele andere Funktionen, ohne die ich jetzt nicht leben kann. Sehr ausgereifte, stabile Software. http://cocoatech.com/

3
Gabe

Wenn Sie wie ich die Finder-Symbolleiste deaktivieren, fügt dieser Dienst dem Kontextmenü jedes Ordners ein Element hinzu: http://blog.leenarts.net/2009/09/03/open-service-here/

Auf diese Weise können Sie auch jeden Ordner öffnen, den Sie in der Finder-Baumansicht sehen.

2
joachim

Ok, mir ist klar, dass es etwas spät ist ... vielleicht war diese Alternative zum Zeitpunkt des Schreibens des Beitrags nicht verfügbar?

Wie auch immer, ich habe festgestellt, dass die Installation des pos-Pakets über Fink (eine Voraussetzung in diesem Fall, vielleicht gibt es etwas Ähnliches für diejenigen, die MacPorts verwenden?) Die einfachste Lösung ist. Sie erhalten zwei Befehle:

  1. posd - gibt das aktuelle Verzeichnis des vordersten Finder-Fensters an (für das Sie vermutlich einen Alias ​​cdf = cd posd erstellen)
  2. fdc - Hiermit wird das aktuelle Verzeichnis des vordersten Finder-Fensters auf Terminal pwd umgeschaltet. Dies unterscheidet sich geringfügig von "offen". Dadurch wird immer ein neues Finder-Fenster geöffnet.

Ja, Sie müssen zum Terminal-Fenster wechseln, bevor Sie eine PDF-Datei schreiben, aber ich nehme an, das ist im Vergleich zum Klicken auf eine Schaltfläche in der Finder-Symbolleiste recht günstig. Und es funktioniert auch mit iTerm. Sie müssen keine separate Finder-Symbolleistenschaltfläche herunterladen, die ein iTerm-Fenster öffnet. Dies ist der gleiche Ansatz wie von PCheese vorgeschlagen, aber Sie müssen Ihr .bash_profile nicht überladen.

2
Jonatan Lindén

Ich benutze meistens diese Funktion:

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

Sie können einem Skript auch eine Verknüpfung wie die folgenden zuweisen.

Eine vorhandene Registerkarte wiederverwenden oder ein neues Fenster erstellen (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

Eine vorhandene Registerkarte wiederverwenden oder eine neue Registerkarte erstellen (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

Erstellen Sie immer eine neue Registerkarte (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

Die ersten beiden Skripte haben zwei Vorteile gegenüber den in 10.7 hinzugefügten Diensten:

  • Sie verwenden den Ordner in der Titelleiste, anstatt zunächst einen Ordner auswählen zu müssen.
  • Sie verwenden die vorderste Registerkarte erneut, wenn sie nicht belegt ist, z. Ausführen eines Befehls, Anzeigen einer Manpage oder Ausführen von Emacs.
1
Lri

Es gibt einen Fehler im AppleScript unter OSX 10.6. (2 Terminalfenster öffnen sich). Ich habe dies behoben, indem ich nach der Aktivierung den Befehl close hinzugefügt habe. Dies schließt das erste Terminalfenster.

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
0
Master Bee