Buat folder dibuka oleh aplikasi eksternal terbuka di tab pencari baru, bukan jendela


13

Saya memiliki pengaturan "buka folder di tab baru" (bukan jendela baru) di finder dihidupkan tetapi ini tampaknya tidak mempengaruhi apa yang aplikasi saya lakukan ketika mereka membuka folder. Launchbar dan skrip shell yang saya jalankan dari emacs masih membuka folder di jendela pencari kecil. Bagaimana cara membuat folder dibuka dari aplikasi eksternal semua muncul dalam satu jendela pencari tab?

Sunting: Bmike dalam komentar benar bahwa ini mungkin dapat dilakukan melalui sebuah applescript. Sesuatu seperti ini:

  1. Anda memiliki beberapa skrip yang memberi Anda jalur folder yang ingin Anda buka.
  2. Anda meneruskan ini sebagai variabel ke sebuah applescript.
  3. Applescript ini menyimpan pathname sebagai variabel
  4. Ini mengaktifkan finder atau membuka folder tertentu dengan finder.
  5. Ini mengirimkan perintah keystroke + t untuk membuka tab baru (atau melakukan hal yang sama dengan perintah untuk finder).
  6. Ia mengirimkan perintah keystroke + shift + g untuk finder membuka folder go dengan path x menu / window.
  7. Itu menulis (systemevents) atau menempelkannya (mengatur clipboard ke variabel yang merupakan path folder) ke dalam menu / jendela ini.
  8. Klik masuk. Folder dibuka.

3
Aku ingin yang sama.
iCode

1
Saya memiliki masalah yang sama, pertanyaan tentang Pengguna Super: superuser.com/questions/688439/...
Nick

Sepertinya ini berada di bawah pengaturan aplikasi, bukan hanya Finder's.
Rajiv

1
Bisakah Anda membagikan skrip shell atau detail launchbar? Dimungkinkan untuk menyematkan panggilan AppleScript di dalamnya untuk memberi tahu finder untuk membuka tab baru.
bmike

launchbar hanya membuka barang secara otomatis, dalam skrip shell saya menggunakan perintah open developer.apple.com/librarY/mac/documentation/Darwin/Reference/… , untuk membuka melalui emacs dalam dired saya menggunakan script ini apple.stackexchange.com/questions/ 106131 /…

Jawaban:


1

Saya melakukan ini, tidak yakin apakah itu akan menjawabnya untuk Anda.

Preferensi Finder> Umum> centang "buka folder di tab, bukan jendela baru"


1

Terima kasih untuk idenya. Saya sudah menyelesaikan applescript.

Masukkan yang berikut ini di ~/.bashrcatau~/.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
}

Di terminal, ketik

oft .

untuk membuka folder saat ini di tab baru Finder.

Script bash digunakan untuk mengambil path absolut, yang menurut saya sulit dilakukan dalam appplescript.

MEMPERBARUI

Saya telah membuat versi yang lebih luas (dan rumit) yang akan membuka tab yang sama untuk folder yang sama. Dapatkan disini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.