Creazione di scelta rapida o scorciatoia da tastiera per incollare una specifica frase di testo in Mac OSX


21

Ho una frase di testo (in realtà, diverse fasi) che utilizzo frequentemente in più applicazioni. Vorrei creare una scorciatoia da tastiera o un tasto di scelta rapida che incollerà questa frase di testo ovunque abbia posizionato il cursore in un campo di immissione testo (Apple Mail, Microsoft Word, TextEdit, TextWrangler, finestre del browser, ecc.) Anziché copiare costantemente e incollando da una nota appiccicosa.

Preferirei non dover acquistare alcuna app (sembra che Keyboard Maestro abbia questa funzionalità ma sembra sciocco pagare $ 36 solo per questo), anche se le app gratuite andrebbero bene. Ho provato a cercare in Preferenze di Sistema> Tastiera> Scorciatoie da tastiera ma nessuna soluzione ovvia, e tutti gli script Apple che ho trovato sembrano non tradurre correttamente per me. Ho trovato altre soluzioni per questo problema su questo forum per utenti Windows (come AutoHotKey) ma nessuna per gli utenti Mac.

Risposte:


16

Il modo più semplice per digitare il testo con un AppleScript è eseguire:

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

Puoi attivarlo con una scorciatoia da tastiera creando una nuova azione rapida (precedentemente denominata Servizio ) in Automator. Impostalo per ricevere Nessun input , quindi trascina Esegui AppleScript dal riquadro sinistro a destra.

Dovrebbe sembrare come questo:

Salvalo, quindi assegna una scorciatoia da tastiera a questo servizio in Preferenze di Sistema »Tastiera» Scorciatoie da tastiera .


Wow, grazie mille @slhck! Ho provato questo, ma sto riscontrando problemi nell'ultimo passaggio. Non viene visualizzato nel menu "Servizi" quando vado in "Scorciatoie da tastiera" in Preferenze di Sistema. So che funziona perché quando apro Automator e premo Riproduci, il testo viene digitato nell'applicazione precedente, ma non verrà visualizzato nel servizio, quindi posso aggiungere una scorciatoia da tastiera anche se l'ho salvata nella mia Libreria> Cartella servizi . Su consiglio di altri forum che ho cercato su Google, ho ricontrollato che l'input del servizio era impostato su "Il servizio riceve: nessun input" (lo era) e ho provato a riavviare il Finder. qualche idea?
Ruthie,

Quindi l'hai salvato da Automator? Normalmente dovrebbe apparire nelle opzioni Scorciatoie da tastiera, sotto Servizi e Generale in fondo. Hai provato a disconnetterti e riconnetterti o anche a riavviare?
Slhck,

@slhck sembra un ottimo modo per farlo, ma potresti dettagliare un po 'di più la tua risposta? Non sono fluente con il modo in cui funziona Automator, quando lo lancio mi chiede "ho scelto un tipo per il tuo documento" e poi mi sono perso. Andrò con la risposta di Jonathan Huie per ora, ma implica ancora digitare qualcosa ... Grazie!
MicroMachine,

@fabriced È necessario creare un servizio in Automator.
slhck,

2
Trovo che funzioni in un editor di testo, ma non in un campo di testo in un sito Web. Chiunque altro?
Eliot,

6

Il keystrokecomando può essere utilizzato solo per inserire caratteri presenti nel layout di tastiera corrente e c'è un ritardo visibile per lunghe stringhe di testo. Puoi anche inserire direttamente il testo:

Anche questo metodo non è realmente utilizzabile. C'è un bug su 10.7 e 10.8 in cui le scorciatoie per i servizi di Automator non funzionano sempre fino a quando non si passa il mouse sul menu dei servizi.

Ho usato FastScripts per assegnare questo script a 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 assomiglia a questo:

m name@example.com
cmd ⌘

Un'altra opzione è utilizzare DefaultKeyBinding.dict . Ciò farebbe ⌥M o ⌥X e m inserire un indirizzo e-mail:

{
    "~m" = (insertText:, "name@example.com");
    "~x" = {
        "m" = ("insertText:", "name@example.com");
    };
}

Puoi anche aggiungere testo personalizzato ai popover mostrati quando tieni premuti i tasti. Vedere questa domanda .


2

Cerca un'app chiamata "Textexpander" che ti dia la capacità di definire frasi di testo come @dd che, una volta digitate, saranno espanse al contenuto definito, in tal caso la data effettiva.

AFAIK è Shareware. Quindi in realtà non è gratuito ma la modalità demo non è temporizzata.


Solo una breve nota nel caso in cui sia utile per gli altri - TextExpander non funziona sulle finestre del terminale X11.
ggkmath,

2

L'app Alfred ti consente di farlo, oltre a molte altre cose, utilizzando le funzionalità Flusso di lavoro e Snippet. Uso Alfred continuamente e lo consiglio vivamente. Per sbloccare i flussi di lavoro devi pagare per una licenza Powerpack, ma non te ne pentirai. 😉


Sono d'accordo, questa è una delle app più utili che chiunque possieda un Mac dovrebbe avere. Ho migrato completamente dai servizi di Automator personalizzati ad Alfred.
Slhck,

1

Basta fare clic su: Preferenze di Sistema, Tastiera, Testo e inserire il collegamento e la frase


1
Mi piace questa risposta, ma in realtà non consente "scorciatoia da tastiera" o "tasto di scelta rapida", si deve ancora inserire un testo (e non una combinazione di tasti) che viene sostituito dalla macchina.
MicroMachine,

1
Questo sembra funzionare solo in alcune app selezionate. Non funziona nella maggior parte dei posti in cui mi piacerebbe, ad esempio campi di input del browser, il mio client di posta (Thunderbird), Terminale, ecc.
Non

0

Una tastiera separata chiamata Martian Keyboard conterrà stringhe di testo come frasi e persino brevi paragrafi. Ti eviterà di digitare fastidiosi tasti di battitura che digiti ripetutamente, giorno dopo giorno. I tasti funzionano come tasti "incolla". Ha la capacità di memorizzare tutte le scorciatoie in Word su una singola tastiera, usando i tasti del livello maiusc. È principalmente per uso professionale, quindi è un po 'costoso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.