Öffnen Sie Ordner, die von externen Apps geöffnet wurden, in einem neuen Finder-Tab und nicht in einem Fenster

13

Ich habe die Einstellung "Ordner in neuen Registerkarten öffnen" (anstelle von neuen Fenstern) im Finder aktiviert, aber dies scheint keinen Einfluss darauf zu haben, was meine anderen Apps tun, wenn sie einen Ordner öffnen. Die Startleiste und ein Shell-Skript, das ich mit Emacs ausführe, öffnen weiterhin Ordner in kleinen Finder-Fenstern. Wie kann ich festlegen, dass Ordner, die von externen Apps geöffnet wurden, alle in einem Fenster mit Registerkarten angezeigt werden?

Edit: Bmike im Kommentar ist richtig, dass dies wahrscheinlich über ein Applescript erfolgen könnte. Etwas wie das:

  1. Sie haben ein Skript, das den Pfad des Ordners angibt, den Sie öffnen möchten.
  2. Sie übergeben dies als Variable an ein Applescript.
  3. Dieses Applescript speichert den Pfadnamen als Variable
  4. Es aktiviert den Finder oder öffnet einen bestimmten Ordner mit dem Finder.
  5. Es sendet den Tastendruck-Befehl + t, um eine neue Registerkarte zu öffnen (oder macht dasselbe mit einem Befehl zum Finden).
  6. Es sendet den Tastaturbefehl + Umschalt + g an den Finder, der den Ordner Gehe zu mit Pfad x Menü / Fenster öffnet.
  7. Es schreibt (Systemereignisse) oder fügt es in dieses Menü / Fenster ein (Zwischenablage auf die Variable setzen, die der Pfad des Ordners ist).
  8. Klicken Sie auf die Eingabetaste. Der Ordner wird geöffnet.

quelle
3
Ich möchte das Gleiche.
iCode
1
Ich habe das gleiche Problem, Frage zum Superuser
Nick
Es scheint, dass dies unter den Einstellungen der Anwendung liegt, nicht nur bei Finder.
Rajiv
1
Können Sie das Shell-Skript oder die Details der Startleiste freigeben? Möglicherweise können Sie einen AppleScript-Aufruf einbetten, um Finder anzuweisen, einen neuen Tab zu öffnen.
bmike
Die Startleiste öffnet nur automatisch Sachen. In Shell-Skripten verwende ich den Befehl open developer.apple.com/librarY/mac/documentation/Darwin/Reference/… . Zum Öffnen über Emacs in dired verwende ich dieses Skript apple.stackexchange.com/questions/ 106131 /…

Antworten:

1

Ich habe das getan, nicht sicher, ob es für Sie antworten wird.

Finder-Einstellungen> Allgemein> Aktivieren Sie "Ordner in Registerkarten anstelle von neuen Fenstern öffnen".

David Corbin
quelle
1

Danke für die Idee. Ich habe das Apfelskript fertig bekommen.

Geben Sie Folgendes in Ihr ~/.bashrcoder ein~/.zshrc

# open the current folder in Finder's tab
function oft() {
    # if no arguments are given, we use the current folder
    oft_absolute_path=$(cd ${1:-.}; pwd)

    # execute the applescirpt
    osascript 2>/dev/null <<EOF

        # Finder returns a path with trailing slash
        # But PWD doesn't have one, so we add one for it
        set new_tab_path to "$oft_absolute_path" & "/"

        tell application "Finder"
            activate

            if not (exists window 1) then
                make new Finder window
            end if

            try
                set finder_path to POSIX path of (target of window 1 as alias)
            on error
                # the finder's window doesn't contain any folders
                set target of front window to (new_tab_path as POSIX file)
                return
            end try
        end tell

        if new_tab_path = finder_path then
            # the finder's tab is already there
            return
        end if

        # open new tab in Finder
        tell application "System Events" to keystroke "t" using command down

        # set the Finder's path
        tell application "Finder"
            set target of front window to (new_tab_path as POSIX file)
        end tell

        return
    EOF
    # clear the tempory veriable
    unset oft_absolute_path
}

Geben Sie im Terminal Folgendes ein

oft .

um den aktuellen Ordner in der neuen Registerkarte des Finders zu öffnen.

Das Bash-Skript wird zum Abrufen des absoluten Pfades verwendet, was ich mit Appplescript als schwierig empfand.

AKTUALISIEREN

Ich habe eine umfangreichere (und kompliziertere) Version erstellt, die für denselben Ordner denselben Tab öffnet. Hol es dir hier

Hai Feng Kao
quelle