Сделать так, чтобы папки, открытые внешними приложениями, открывались на новой вкладке Finder, а не в окне

У меня включен параметр «открывать папки в новых вкладках» (вместо новых окон) в Finder, но это, похоже, не влияет на то, что делают другие мои приложения, когда они открывают папку. Панель запуска и сценарий оболочки, который я запускаю из emacs, по-прежнему открывают папки в небольших окнах поиска. Как я могу сделать так, чтобы папки, открытые из внешних приложений, отображались в одном окне поиска с вкладками?

Редактировать: Bmike в комментарии прав, что это, вероятно, можно сделать с помощью applescript. Что-то вроде этого:

  1. У вас есть скрипт, который дает вам путь к папке, которую вы хотите открыть.
  2. Вы передаете это как переменную в applescript.
  3. Этот яблочный скрипт сохраняет путь как переменную
  4. Он активирует искатель или открывает определенную папку с искателем.
  5. Он отправляет команду нажатия клавиши + t, чтобы открыть новую вкладку (или делает то же самое с командой для поиска).
  6. Он отправляет команду нажатия клавиши + shift + g, чтобы искатель открывал папку перехода с путем x в меню/окне.
  7. Он записывает (системные события) или вставляет его (устанавливает буфер обмена в переменную, которая является путем к папке) в это меню/окно.
  8. Нажмите «Ввод». Папка открыта.
Я хочу того же.
У меня такая же проблема, вопрос от суперпользователя: superuser.com/questions/688439/…
Похоже, это находится в настройках приложения, а не только в Finder.
Можете ли вы поделиться сценарием оболочки или деталями панели запуска? Возможно, в них можно будет встроить вызов AppleScript, чтобы сообщить Finder об открытии новой вкладки.
панель запуска просто автоматически открывает материал, в сценариях оболочки я использую команду open developer.apple.com/librarY/mac/documentation/Darwin/Reference/… , чтобы открыть через emacs в dired, я использую этот скрипт apple.stackexchange.com/questions/ 106131/…
Я думаю, вы правы в том, что если у вас есть путь, который вы можете открыть с помощью applescript, вам нужен путь к папке в качестве переменной, а затем вы можете активировать finder, cmd t, cmnd shift g, а затем вставить/записать путь к папке в появившейся команде перехода к папке, затем отправьте возврат

Ответы (2)

Я сделал это, не уверен, что это ответит вам.

Настройки Finder> Общие> установите флажок «открывать папки во вкладках вместо новых окон»

Спасибо за идею. Я закончил яблочный скрипт.

Поместите следующее в свой ~/.bashrcили~/.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
}

В терминале введите

oft .

чтобы открыть текущую папку в новой вкладке Finder.

Сценарий bash используется для получения абсолютного пути, что мне было сложно сделать в appplescript.

ОБНОВИТЬ

Я сделал более обширную (и сложную) версию, которая будет открывать ту же вкладку для той же папки. Получи это здесь