Membuat hotkey atau pintasan keyboard untuk menempelkan frase teks tertentu di Mac OSX

21

Saya memiliki frase teks (sebenarnya, beberapa fase) yang sering saya gunakan di beberapa aplikasi. Saya ingin membuat pintasan keyboard atau hotkey yang akan menempelkan frasa teks ini di mana pun saya meletakkan kursor saya di bidang input teks (Apple Mail, Microsoft Word, TextEdit, TextWrangler, jendela browser, dll.) Daripada terus-menerus menyalin dan menempel dari catatan tempel.

Saya lebih suka tidak harus membeli aplikasi apa pun (sepertinya Keyboard Maestro memiliki fungsi ini tetapi tampaknya konyol membayar $ 36 hanya untuk ini), meskipun aplikasi gratis akan baik-baik saja. Sudah mencoba mencari di System Preferences> Keyboard> Keyboard Shortcuts tetapi tidak ada solusi yang jelas, dan semua AppleScripts yang saya temukan tampaknya tidak menerjemahkan dengan baik untuk saya. Saya telah menemukan solusi lain untuk masalah ini di forum ini untuk pengguna Windows (seperti AutoHotKey) tetapi tidak ada untuk pengguna Mac.

Ruthie
sumber

Jawaban:

16

Cara termudah untuk mengetik teks dengan AppleScript adalah dengan menjalankan:

tell application "System Events" to keystroke "foo bar"

Anda dapat memicu ini dengan pintasan keyboard dengan membuat Tindakan Cepat baru (sebelumnya disebut Layanan ) di Automator. Setel untuk menerima No Input , lalu seret Jalankan AppleScript dari panel kiri ke kanan.

Seharusnya terlihat seperti ini:

Simpan, lalu tetapkan pintasan keyboard untuk Layanan ini di bawah Preferensi Sistem »Keyboard» Pintasan Keyboard .

slhck
sumber
Wow, terima kasih banyak @slhck! Saya mencoba ini, tetapi saya mengalami masalah pada langkah terakhir. Itu tidak muncul di menu "Layanan" ketika saya pergi ke "Pintasan Keyboard" di System Preferences. Saya tahu ini berjalan karena ketika saya membuka Automator dan menekan Play, teksnya diketik dalam aplikasi sebelumnya, tetapi tidak akan muncul di layanan sehingga saya dapat menambahkan pintasan keyboard meskipun saya telah menyimpannya di folder Library> Services saya . Atas saran dari forum lain yang saya Google, saya memeriksa ulang bahwa input layanan diatur ke "Layanan menerima: tidak ada input" (itu) dan mencoba meluncurkan Finder. Adakah pikiran?
Ruthie
Jadi Anda menyimpannya dari Automator? Biasanya itu akan muncul di opsi Pintasan Keyboard, di bawah Layanan dan Umum di bagian bawah. Sudahkah Anda mencoba keluar dan masuk kembali, atau bahkan memulai kembali?
slhck
Sslhck ini kedengarannya cara yang bagus untuk melakukan ini, tetapi bisakah Anda merinci jawaban Anda sedikit lebih banyak? Saya tidak lancar dengan cara Automator bekerja, ketika saya meluncurkannya ia meminta saya "memilih jenis untuk dokumen Anda" dan kemudian saya agak bingung. Saya akan pergi dengan jawaban Jonathan Huie untuk saat ini tetapi masih berarti mengetikkan sesuatu ... Terima kasih!
MicroMachine
@fabrikasi Anda perlu membuat Layanan di Automator.
slhck
2
Saya menemukan bahwa ini berfungsi di editor teks, tetapi tidak di bidang teks di situs web. Ada orang lain
Eliot
6

The keystrokeperintah hanya dapat digunakan untuk memasukkan karakter yang ditemukan pada layout keyboard saat ini, dan ada penundaan terlihat untuk string teks panjang. Anda juga dapat memasukkan teks secara langsung:

Metode itu juga tidak bisa digunakan. Ada bug di 10.7 dan 10.8 di mana pintasan untuk layanan Automator tidak selalu berfungsi sampai Anda mengarahkan kursor ke menu layanan.

Saya telah menggunakan FastScripts untuk menetapkan skrip ini ke F3:

try
    set old to the clipboard as record
end try
try
    tell application "System Events"
        key code 123 using {option down, shift down}
        keystroke "c" using command down
    end tell
    delay 0.05
    set input to the clipboard
    read POSIX file "/Users/lauri/Notes/snippets.txt" as «class utf8» using delimiter linefeed
    repeat with p in result
        considering case
            if p starts with (input & " ") then
                set the clipboard to text ((offset of space in p) + 1) thru -1 of p
                tell application "System Events" to keystroke "v" using command down
                delay 0.05
                exit repeat
            end if
        end considering
    end repeat
end try
try
    set the clipboard to old
end try

snippets.txt terlihat seperti ini:

m [email protected]
cmd ⌘

Pilihan lain adalah menggunakan DefaultKeyBinding.dict . Ini akan membuat ⌥M atau ⌥X dan m memasukkan alamat email:

{
    "~m" = (insertText:, "[email protected]");
    "~x" = {
        "m" = ("insertText:", "[email protected]");
    };
}

Anda juga dapat menambahkan teks khusus ke sembulan yang ditampilkan saat menahan tombol. Lihat pertanyaan ini .

Lri
sumber
2

Lihat App yang disebut "Textexpander" yang memberi Anda kemampuan untuk mendefinisikan frasa teks seperti @dd yang - ketika diketik - akan diperluas ke konten yang ditentukan - dalam hal ini tanggal aktual.

AFAIK itu Shareware. Jadi sebenarnya tidak gratis tetapi mode demo tidak timelimited.

heiglandreas
sumber
Hanya catatan singkat jika berguna bagi orang lain - TextExpander tidak berfungsi pada windows terminal X11.
ggkmath
2

Aplikasi Alfred memungkinkan Anda melakukan ini — ditambah banyak hal lain — menggunakan fitur Alur Kerja dan Cuplikan. Saya menggunakan Alfred sepanjang waktu dan sangat merekomendasikannya. Untuk membuka kunci Alur Kerja Anda harus membayar lisensi Powerpack, tetapi Anda tidak akan menyesalinya. 😉

mklbtz
sumber
Saya setuju, ini adalah salah satu aplikasi paling berguna yang dimiliki siapa pun yang memiliki Mac. Saya sepenuhnya bermigrasi dari layanan Automator kustom ke Alfred.
slhck
1

Cukup klik pada: Preferensi Sistem, Keyboard, Teks, dan masukkan pintasan dan frasa Anda

Jonathan Huie
sumber
1
Saya suka jawaban ini, tetapi tidak benar-benar memungkinkan "pintasan keyboard" atau "hotkey", seseorang masih harus memasukkan teks (dan bukan kombinasi tombol) yang akan diganti oleh mesin.
MicroMachine
1
Ini sepertinya hanya berfungsi di beberapa aplikasi tertentu. Ini tidak berfungsi di sebagian besar tempat yang saya suka, misalnya bidang input browser, klien email saya (Thunderbird), Terminal, dll.
Don't Panic
0

Keyboard terpisah yang disebut Keyboard Mars akan menyimpan string teks seperti kalimat dan bahkan paragraf pendek. Ini akan menyelamatkan Anda dari mengetik penekanan tombol yang Anda ketikkan berulang kali, hari demi hari. Kunci berfungsi seperti kunci "tempel". Ini memiliki kemampuan untuk menyimpan semua pintasan di Word pada keyboard tunggal, menggunakan tombol shift layer. Ini terutama untuk penggunaan profesional, jadi agak mahal.

Rick
sumber