Buat pintasan global untuk menjalankan aplikasi baris perintah

31

Langkah apa yang saya perlukan untuk menjalankan program baris perintah melalui pintasan global?

Saya mengatur Automator untuk membuat Skrip Run Shell baru dan mencoba menetapkan pintasan di System Preferences -> Keyboard -> Keyboard Shortcuts, tetapi tidak ada yang terjadi.

Adam Flott
sumber
1
Pertanyaan saya berbeda. Saya tidak ingin jendela terminal terbuka sama sekali.
z-buffer
1
Jika Anda tidak ingin jendela Terminal terbuka sama sekali, Anda menanyakan hal yang sama dengan pos terkait.
Daniel

Jawaban:

8

Tuliskan itu:

do shell script "ls ~/Desktop"

Tambahkan apa yang Anda inginkan di sana, maka Anda dapat menjalankan Applescript melalui aplikasi hot key global. Saya akan merekomendasikan Spark

Oh, dan saya tidak tahu tentang menetapkan cara pintas melalui System Preferences

daviesgeek
sumber
Bingo. Anehnya fungsi ini belum ada di dalam OSX. Terima kasih banyak!
Adam Flott
@ Adam Ya, ini agak aneh.
daviesgeek
8
Kecuali bahwa itu adalah dibangun ke OS X melalui Automator Services, @AdamFlott, hanya saja jawaban Anda diterima tidak menggunakan metode tersebut.
Daniel
2
Juga, AppleScript dan Automator adalah bagian dari OS X.
Daniel
1
-1 untuk menggunakan pihak ke-3 tanpa alasan yang jelas.
cregox
32

Tanpa mengetahui secara spesifik apa yang Anda cari, saya sarankan untuk membuat Layanan baru melalui Automator . Layanan dapat terikat ke pemicu keystroke, dan dapat mengeksekusi skrip shell (antara lain). masukkan deskripsi gambar di sini

Untuk mengatur pintasan keyboard, buka System Preferences -> Keyboard -> Shortcuts -> Services, pilih layanan yang baru saja Anda simpan, dan kemudian klik tombol "Add Shortcut".

Daniel
sumber
Tidak jelas bagi saya setelah menyimpan layanan bagaimana Anda mengatur pintasan keyboard.
Liron Yahdav
@LironYahdav Lihat edit di atas
Daniel
12

FastScripts menyertakan semua skrip di ~ / Library / Scripts /, jadi Anda tidak perlu menambahkan file secara manual. Ini juga mendukung skrip khusus aplikasi.

Aplikasi lain yang dapat digunakan untuk menetapkan pintasan untuk menjalankan skrip:

Anda juga dapat membuat layanan Automator:

  1. Buka Automator dan pilih templat Layanan
  2. Tambahkan Run Shell Script atau Run AppleScript action
  3. Pastikan jenis input dan ruang lingkup aplikasi sudah benar
  4. Rekatkan skrip dan simpan layanan
  5. Tetapkan pintasan di panel preferensi Keyboard

Ada bug di 10.7 dan 10.8 di mana pintasan untuk layanan tidak selalu berfungsi sampai menu layanan telah ditampilkan dari bilah menu. Pintasan untuk layanan tidak berfungsi ketika aplikasi paling depan tidak memiliki bilah menu atau menu layanan. Ada juga penundaan singkat sebelum layanan dijalankan.

Lri
sumber
ditambah satu untuk menyebutkan aplikasi lain yang melakukannya juga. Saya hampir pergi untuk menginstal percikan ketika saya sudah menggunakan QuickSilver. Saya tidak tahu itu punya opsi itu.
Marlon
juga, bagian di panel "Preferensi keyboard" untuk menambahkan pintasan akan berada di bawah bagian "Layanan", jika menggunakan pendekatan Automator.
Brad Parks
7

Saya mencoba semua opsi itu, tetapi terlalu rumit dan tidak dapat diandalkan atau sangat mahal. Jadi saya akhirnya menulis solusi saya sendiri (open-source dan gratis).

iCanHazShortcut

Tidak bisa berbuat banyak sekarang, tapi itu awal. Silakan berkontribusi dengan menambahkan permintaan fitur dan saran.

Deseven
sumber
1
Saya telah mencoba menemukan solusi mudah untuk masalah ini selama beberapa jam sekarang dan aplikasi Anda adalah satu-satunya yang berfungsi dan melakukan apa yang seharusnya dilakukan tanpa bel dan peluit yang rumit. Terima kasih!
Stijn Martens
@StijnMartens Anda dipersilakan! Itulah keseluruhan ide di baliknya - jika Anda hanya memerlukan pintasan untuk sebuah perintah, Anda mendapatkan pintasan untuk sebuah perintah. Tidak lebih, tidak kurang.
deseven
Ini bekerja dengan baik.
Brian Schermerhorn
2

Quicksilver dapat digunakan untuk mengikat tombol pintas ke tindakan.

Jika Anda mendapati diri Anda sering melakukan sesuatu, Anda dapat mempercepat tugas lebih banyak lagi dengan menetapkan "pemicu" untuknya. Pemicu dapat diaktifkan dengan cara pintas keyboard atau gerakan mouse

Jika itu perintah Unix atau skrip shell yang ingin Anda jalankan, posting Stackoverflow ini memberikan beberapa informasi lebih lanjut tentang penggunaan "modul Terminal" Quicksilver.

binarybob
sumber
1

Saya akan menambahkan jawaban saya di sini menggunakan BTT , karena mudah dan sebenarnya dapat diikat langsung ke skrip baris perintah:

  1. Pilih Keyboard dari BTT

Pilih Keyboard dari BTT

  1. Masukkan pintasan Anda (atau urutan tombol!)

Masukkan pintasan Anda (atau urutan tombol!)

  1. Pilih "Trigger Predefined Action" dan ketik "shell" untuk menemukan tindakan.

Pilih "Trigger Predefined Action" dan ketik "shell" untuk menemukan tindakan.

  1. Anda dapat menempelkan skrip dan shell yang ingin Anda jalankan:

Anda dapat menempelkan skrip dan shell yang ingin Anda jalankan:

Klik simpan dan Anda selesai! Sekarang uji skrip Anda dengan pemicu keyboard yang Anda siapkan.

  1. EXTRA: Anda mungkin ingin menambahkan catatan untuk mengingat apa jalan pintas untuk ...

Anda mungkin ingin menambahkan catatan untuk mengingat apa jalan pintas untuk ...

cody.codes
sumber
Terima kasih, akhirnya turun di rute ini karena saya punya BTT.
Leo Ufimtsev
0

Tampaknya seolah-olah ini tersedia di 10.6, (lihat http://hints.macworld.com/article.php?story=2009090308525543030 ) tetapi ada sesuatu yang pecah di 10.7.2 (dan mungkin sebelumnya 10.7)

Saya telah menemukan bahwa meskipun cara pintas keyboard Layanan ini dihormati ketika System Preferences adalah di garis depan, tapi tidak dalam aplikasi lain, termasuk Finder.

Namun, saran sebelumnya untuk menggunakan Spark bekerja dengan baik di singa, kecuali bahwa saya tidak dapat menggunakan Ctrl di pintasan keyboard saya. (bukan showstopper!)

adamrmcd
sumber
hanya ketika menu aplikasi fokus. Jika Anda mengklik desktop dan mencoba pintasan itu tidak berfungsi. klik pada menu untuk finder dan kemudian coba dan berhasil. Saya memiliki layanan untuk Terminal yang memiliki pintasan dan muncul di semua aplikasi ... tetapi tidak berfungsi jika saya tidak berada di dalam aplikasi dan bahkan kemudian menu perlu fokus.
Marlon
@Lri bahkan setelah masuk dan kembali, menghidupkan ulang mesin, dll. Masih tidak berfungsi kecuali saya melakukan seperti yang saya jelaskan di atas. Mengaturnya di Quicksilver berfungsi baik. Saya ingin tahu mengapa QuickSilver dapat menangkap pintasan "global" dan bukan OS.
Marlon