Как дублировать текущий открытый вид Finder на новой вкладке (Mavericks)?

В ветке на этом форуме есть интересное решение о том, как открыть дубликат уже открытого окна Finder с помощью AppleScript: как дублировать текущий открытый вид Finder?

Интересно, с новой вкладкой Finder в OS X 10.9 Mavericks мне интересно, есть ли способ реализовать AppleScript, который открывает дубликат на новой вкладке Finder вместо нового окна Finder? Кому-нибудь удалось найти решение?

6 ответов

Вы можете сделать это, нажав:

Cmd+ Ctrl+O

в любой папке, и он будет отображаться в новой вкладке.

Словарь Finder не поддерживает вкладки, но вы можете смоделировать нажатие команды T:

tell application "Finder"
    activate
    set t to target of Finder window 1
    set toolbar visible of window 1 to true
end tell
tell application "System Events"
    keystroke "t" using command down
end tell
tell application "Finder"
    set target of Finder window 1 to t
end tell

Целью окна Finder является папка, отображаемая в строке заголовка, которая не зависит от того, какие элементы выбраны в представлении списка.

В предыдущих версиях MacOS (до Монтерея) - Cmd+ Ctrl+ O- работало отлично... вы могли даже Cmd+ дважды щелкнуть папку на панели пути Finder, чтобы открыть новое окно в этом месте. Или, если вы включили Finder>Настройки>Общие «Открывать папки на вкладках вместо новых окон», Cmd+ двойной щелчок по папке на панели пути откроет это место на новой вкладке.

Однако после Монтерея эти варианты, похоже, больше не работают. Вы по-прежнему можете (утомительно) щелкнуть папку правой кнопкой мыши и выбрать «Открыть в новом окне» или «Открыть в новой вкладке», но ярлык Cmd+ Ctrl+ Oили Cmd+ двойной щелчок больше не работает (хотя вы можете видеть его в меню). параметры).

Этот форум MacRumors — ЕДИНСТВЕННОЕ место, где я смог найти обсуждение этого открытия: https://forums.macrumors.com/threads/cmd-double-click-on-finder-path-bar-doesnt-open-folder-in-new- окно.2331090/


Протестированные версии: Monterey 12.5.1 (на Intel), 12.1 (на Apple Silicon), Big Sur 11.6.2, Catalina 10.15.7...

Я написал сценарий для этого сегодня, очень похожий на то, как это сделал @Lri.

https://gist.github.com/n8henrie/0ceef75964bd153f910d

-- duplicateFinderTab.scpt
-- Uses a hacky workaroud to duplicate the frontmost Finder tab,
-- since Apple hasn't provided great AppleScript support for this.

on new_tab()
    tell application "System Events" to tell application process "Finder"
        set frontmost to true
        tell front menu bar to tell menu "File" to tell menu item "New Tab"
            perform action "AXPress"
        end tell
    end tell
end new_tab

on run {}
    tell application "Finder"
        if (count of Finder windows) > 0 then set duplicate_me to target of front Finder window
    end tell

    -- Short delay may or may not be necessary, mine seems to work without.
    -- delay 0.2

    new_tab()
    tell application "Finder"
        set target of front Finder window to duplicate_me
    end tell
end run

Это решение @n8henrie, за исключением твика для повторного выбора выбранных элементов, который мне нравится:

-- duplicateFinderTab.scpt
-- Uses a hacky workaroud to duplicate the frontmost Finder tab,
-- since Apple hasn't provided great AppleScript support for this.

----------------------------------------------
on run {}
    tell application "Finder"
        if (count of Finder windows) > 0 then set duplicate_me to target of front Finder window
        set _sel to the selection
    end tell

    -- Short delay may or may not be necessary, mine seems to work without.
    -- delay 0.2

    new_tab()

    tell application "Finder"
        set target of front Finder window to duplicate_me
        select _sel
    end tell
end run

----------------------------------------------
on new_tab()
    tell application "System Events" to tell application process "Finder"
        set frontmost to true
        tell front menu bar to tell menu "File" to tell menu item "New Tab"
            perform action "AXPress"
        end tell
    end tell
end new_tab

Нажмите вкладку поиска, которую вы хотите дублировать, затем CMD+T.

Другие вопросы по тегам