Buka terminal di sini di Mac OS finder [ditutup]

682

Apakah ada sesuatu yang mirip dengan "Open Command Window Here" Windows Powertoy untuk Mac OS? Saya telah menemukan beberapa plugin melalui pencarian google tetapi ingin melihat apa yang terbaik untuk pengembang di luar sana.

Abdullah Jibaly
sumber

Jawaban:

900

Pada Mac OS X Lion 10.7, Terminal menyertakan persis fungsi ini sebagai Layanan. Seperti sebagian besar Layanan, ini dinonaktifkan secara default, jadi Anda harus mengaktifkannya untuk membuatnya muncul di menu Layanan.

Preferensi Sistem> Keyboard> Pintasan> Layanan

Memungkinkan Terminal Baru di Folder . Ada juga Tab Terminal Baru di Folder , yang akan membuat tab di jendela Terminal paling depan (jika ada, selain itu akan membuat jendela baru). Layanan ini bekerja di semua aplikasi, bukan hanya Finder, dan mereka beroperasi pada folder serta nama path absolut yang dipilih dalam teks.

Anda bahkan dapat menetapkan kunci perintah kepada mereka.

Layanan muncul di submenu Layanan setiap menu aplikasi, dan dalam menu kontekstual (Kontrol-Klik atau Klik-kanan pada folder atau nama path).

Layanan Terminal Baru di Folder akan menjadi aktif ketika Anda memilih folder di Finder. Anda tidak bisa hanya membuka folder dan menjalankan layanan "di tempat". Kembali ke folder induk, pilih folder yang relevan, lalu aktifkan layanan melalui menu Layanan atau menu konteks.

Selain itu, Lion Terminal akan membuka jendela terminal baru jika Anda menyeret folder (atau pathname) ke ikon aplikasi Terminal, dan Anda juga dapat menyeret ke bilah tab dari jendela yang ada untuk membuat tab baru.

Akhirnya, jika Anda menyeret folder atau pathname ke tab (di bilah tab) dan proses latar depan adalah shell, itu akan secara otomatis menjalankan perintah "cd". (Menyeret ke tampilan terminal di dalam tab hanya menyisipkan pathname sendiri, seperti dalam versi Terminal yang lebih lama.)

Anda juga dapat melakukan ini dari baris perintah atau skrip shell:

open -a Terminal /path/to/folder

Ini adalah baris perintah yang setara dengan menyeret folder / pathname ke ikon aplikasi Terminal.

Pada catatan terkait, Lion Terminal juga memiliki Layanan baru untuk mencari halaman manual: Buka halaman manual di Terminal menampilkan topik halaman manual yang dipilih di jendela terminal baru, dan Halaman pencarian manual di Terminal melakukan "apropos" pada teks yang dipilih. Yang pertama juga memahami referensi halaman manual ("open (2)"), argumen baris perintah halaman manual ("2 open") dan URL halaman manual ("x-man-page: // 2 / open").

Chris Page
sumber
8
Tidak berfungsi pada Yosemite.
Olcay Ertaş
2
@ OlcayErtaş Apa yang tidak berfungsi? Segala sesuatu dalam jawaban saya berfungsi pada Yosemite 10.10.x.
Chris Page
2
Apakah saya harus me-restart Finer? Saya tidak mengapa tetapi saya telah mengaktifkan Terminal Baru di layanan Folder tetapi tidak berhasil.
Olcay Ertaş
13
@ OlcayErtaş Anda harus mengklik kanan pada ikon folder untuk mendapatkan item menu; jangan menavigasi ke folder itu sendiri, tetapi ke induknya.
Jonathan Landrum
2
Saya dapat menggunakannya melalui klik kanan / layanan tetapi saya tidak dapat menggunakannya melalui pintasan keyboard.
Bisakah Poyrazoğlu
153

Ini:

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

Ini adalah aplikasi kecil yang Anda seret ke bilah alat Finder, ikonnya sangat pas. Ia bekerja dengan Terminal, xterm (di bawah X11), iterm.

dihapus
sumber
56

Aplikasi yang menurut saya sangat diperlukan sebagai alternatif adalah DTerm , yang sebenarnya membuka terminal mini tepat di aplikasi Anda. Plus itu berfungsi dengan hampir semua yang ada - Finder, XCode, PhotoShop, dll.

Paul Alexander
sumber
38

Klarifikasi (terima kasih @ vgm64): jika Anda sudah berada di Terminal, ini memungkinkan Anda dengan cepat mengubah ke jendela Finder teratas tanpa meninggalkan Terminal. Dengan cara ini, Anda dapat menghindari menggunakan mouse.

Saya telah menambahkan berikut ini ke saya .bash_profilesehingga saya dapat mengetikkan cdffTerminal kapan saja.

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

Ini dari petunjuk terminal macosxhints.com ini .

Ini
sumber
"open." membuka jendela Finder baru di direktori saat ini
jolvi
2
@ jolvi adalah kebalikan dari apa yang diberikan jawaban ini. Intinya bukan untuk membuka jendela finder di pwd, tetapi ke cddirektori di mana finder terbuka.
Jonathan Landrum
ah, maaf, tentu saja kamu benar.
jolvi
14

Lihat Terminal Terbuka Di Sini . Ini mungkin yang paling mirip dengan "Open Command Window Here." Saya menggunakan>cdto dan ini sangat mirip tetapi ini tampaknya sedikit lebih baik dalam berurusan dengan Spaces ... tetapi tidak sempurna.

Apa yang dimilikinya yang sangat bagus adalah kemampuan untuk " mendeteksi peristiwa key-down pada awal aplikasi dan menggunakannya untuk memodifikasi perilaku skrip " memungkinkan skrip untuk membuka tab baru di jendela terminal paling depan ketika dipanggil dengan menahan tombol ⌘. Trik rapi.

Perhatikan juga jawaban PC ini; mungkin lebih bermanfaat bagi pengguna terminal berat!

fisika michael
sumber
12

Ada versi terbaru dari Open Terminal yang sangat bagus dan ramping Di sini diposting oleh vgm64 dan d0k . Perubahan itu dilakukan oleh james david low . Dia menerbitkan versi baru di situsnya . Cukup unduh OpenTerminalHere.zip, ekstrak, pindahkan bundel ke folder Library / Scripts Anda dan seret dari sana ke toolbar Finder Anda.

Apa yang istimewa tentang itu adalah selalu membuka tab baru jika jendela Terminal.app sudah terbuka. Sangat berguna! Saya juga mencatat bahwa gaya tombol aplikasi lebih cocok dengan gaya Snow Leopard Finder.app daripada cdto yang diposting oleh redacted .

pklaus
sumber
Ini luar biasa! Catatan Anda harus Command + Drag (bukan hanya drag seperti yang dinyatakan dalam posting di atas) ke Toolbar Finder. Dan kemudian Anda memiliki ikon shortcut yang ketika diklik akan terminal dari folder apa pun.
B. Nadolson
10

Juga, Anda dapat menyalin item dari finder menggunakan perintah-C, lompat ke Terminal (misalnya menggunakan Spotlight atau QuickSilver) ketik 'cd' dan cukup tempel dengan perintah-v

Henrik Hartz
sumber
4

Saya membuat bundel dengan 3 aplikasi untuk bilah alat pencari. Dua aplikasi lain melakukannya:

  • buka Textmate dengan pilihan saat ini
  • buka GitX dengan folder saat ini

Untuk informasi lebih lanjut, lihat di sini: http://nslog.de/posts/71

stigi
sumber
3

Jika Anda memasang Skrip Kucing Besar ( http://www.ranchero.com/bigcat/ ), Anda dapat menambahkan menu kontekstual Anda sendiri (klik kanan). Saya tidak berpikir itu datang dengan applescript Open Terminal Here tetapi saya menggunakan script ini (yang saya tidak ingat dengan jujur ​​jika saya menulis sendiri, atau diangkat dari contoh orang lain):


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

Script yang mirip juga bisa memberi Anda path lengkap ke file di klik kanan, yang bahkan lebih berguna, saya temukan.

iayork
sumber
3

Ini sedikit lebih banyak daripada yang Anda minta, tetapi saya merekomendasikan Path Finder Cocoatech untuk siapa saja yang berharap Finder memiliki jus lebih banyak. Ini termasuk tombol bilah alat untuk membuka jendela Terminal untuk direktori saat ini, atau panel yang dapat ditarik dengan baris perintah Terminal di bagian bawah setiap jendela Finder. Ditambah banyak fitur lain yang sekarang tidak bisa saya jalani. Perangkat lunak yang sangat matang dan stabil. http://cocoatech.com/


sumber
2

Ok, saya menyadari bahwa ini agak terlambat ... mungkin alternatif ini tidak tersedia pada saat menulis posting?

Bagaimanapun, saya telah menemukan menginstal paket pos melalui Fink (prasyarat dalam hal ini, mungkin ada sesuatu yang serupa bagi mereka yang menggunakan MacPorts?) Untuk menjadi solusi termudah. Anda mendapatkan dua perintah:

  1. posd - yang memberikan direktori saat ini dari jendela Finder paling depan (untuk yang Anda mungkin membuat alias cdf = cd posd)
  2. fdc - yang mengalihkan direktori saat ini dari jendela Finder paling depan ke Terminal pwd. Ini sedikit berbeda dari 'terbuka'. yang selalu membuka jendela pencari baru.

Ya, Anda harus beralih ke jendela Terminal sebelum menulis cdf, tapi saya kira itu cukup murah dibandingkan dengan mengklik tombol di bilah alat Finder. Dan itu berfungsi dengan iTerm juga, Anda tidak perlu mengunduh tombol Finder toolbar terpisah yang membuka jendela iTerm. Ini adalah pendekatan yang sama seperti yang diusulkan oleh PCheese, tetapi Anda tidak perlu mengacaukan .bash_profile Anda.

Jonatan Lindén
sumber
2

Jika seperti saya Anda mematikan toolbar Finder, Layanan ini menambahkan item ke menu kontekstual setiap folder: http://blog.leenarts.net/2009/09/03/open-service-here/

Ini juga memungkinkan Anda untuk membuka folder apa pun yang Anda lihat di tampilan Tree Finder.

joachim
sumber
1

Saya kebanyakan menggunakan fungsi ini:

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

Anda juga dapat menetapkan pintasan ke skrip seperti yang di bawah ini.

Gunakan kembali tab yang ada atau buat jendela baru (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

Gunakan kembali tab yang ada atau buat tab baru (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

Selalu buat tab baru (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

Dua skrip pertama memiliki dua keunggulan dibandingkan dengan layanan yang ditambahkan pada 10.7:

  • Mereka menggunakan folder pada bilah judul alih-alih mengharuskan Anda memilih folder terlebih dahulu.
  • Mereka menggunakan kembali tab paling depan jika tidak sibuk, misalnya menjalankan perintah, menampilkan halaman manual, atau menjalankan emacs.
Lri
sumber
0

Ada bug di AppleScript di OSX 10.6. (2 jendela terminal terbuka). Saya memperbaiki ini dengan menambahkan perintah tutup setelah mengaktifkan. Ini menutup jendela Terminal pertama.

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
Tuan Bee
sumber
2
Mengapa Anda ingin menutup jendela Terminal? Bukankah itu akan menghancurkan pekerjaan apa pun yang Anda lakukan di dalamnya?
Rob Kennedy