Erstellen eines Hotkeys oder einer Tastenkombination zum Einfügen einer bestimmten Textphrase in Mac OSX

21

Ich habe eine Textphrase (eigentlich mehrere Phasen), die ich häufig in mehreren Anwendungen verwende. Ich möchte eine Tastenkombination oder einen Hotkey erstellen, mit dem diese Textphrase überall dort eingefügt wird, wo ich den Cursor in ein Texteingabefeld (Apple Mail, Microsoft Word, TextEdit, TextWrangler, Browserfenster usw.) gesetzt habe, anstatt ständig zu kopieren und Einfügen von einem Haftnotiz.

Ich würde es vorziehen, keine Apps kaufen zu müssen (wie es scheint, hat Keyboard Maestro diese Funktionalität, aber es scheint albern, nur dafür 36 US-Dollar zu zahlen), obwohl kostenlose Apps in Ordnung wären. Ich habe versucht, unter Systemeinstellungen> Tastatur> Tastaturkürzel nachzuschlagen, aber es gibt keine offensichtliche Lösung. Alle AppleScripts, die ich gefunden habe, scheinen für mich nicht richtig zu übersetzen. Ich habe in diesem Forum andere Lösungen für dieses Problem für Windows-Benutzer (wie AutoHotKey) gefunden, aber keine für Mac-Benutzer.

Ruthie
quelle

Antworten:

16

Der einfachste Weg, Text mit einem AppleScript einzugeben, besteht darin, Folgendes auszuführen:

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

Sie können dies mit einem Tastaturkürzel auslösen, indem Sie in Automator eine neue Schnellaktion (zuvor Service genannt ) erstellen . Stellen Sie ein, dass keine Eingabe empfangen wird , und ziehen Sie dann "AppleScript ausführen" aus dem linken Bereich nach rechts.

Es sollte so aussehen:

Speichern Sie es und weisen Sie diesem Dienst unter Systemeinstellungen »Tastatur» Tastaturkürzel ein Tastaturkürzel zu .

slhck
quelle
Wow, vielen Dank @slhck! Ich habe es versucht, habe aber im letzten Schritt Probleme. Es wird nicht im Menü "Dienste" angezeigt, wenn ich in den Systemeinstellungen zu "Tastaturkürzel" gehe. Ich weiß, dass es ausgeführt wird, weil der Text beim Öffnen von Automator und Drücken von "Wiedergabe" in der vorherigen Anwendung eingegeben wird, aber nicht im Dienst angezeigt wird, sodass ich eine Tastenkombination hinzufügen kann, obwohl ich sie in meinem Ordner "Bibliothek"> "Dienste" gespeichert habe . Auf Anraten anderer Foren, in denen ich gegoogelt habe, überprüfte ich noch einmal, ob die Serviceeingabe auf "Service empfängt: keine Eingabe" gesetzt war, und versuchte, den Finder neu zu starten. Irgendwelche Gedanken?
Ruthie
Also hast du es von Automator gespeichert? Normalerweise sollte es in den Tastaturkürzeloptionen unter " Dienste" und " Allgemein" unten angezeigt werden. Haben Sie versucht, sich aus- und wieder einzuloggen oder sogar neu zu starten?
Slhck
@slhck das klingt nach einer großartigen Möglichkeit, dies zu tun, aber könntest du deine Antwort etwas genauer beschreiben? Ich bin nicht fließend mit der Funktionsweise von Automator, wenn ich es starte, werde ich gefragt, ob ich einen Typ für Ihr Dokument wähle, und dann bin ich irgendwie verloren. Ich werde vorerst Jonathan Huies Antwort folgen, aber es bedeutet immer noch, etwas zu tippen ... Danke!
MicroMachine
@fabriced Sie müssen einen Service in Automator erstellen .
Slhck
2
Ich finde, dass dies in einem Texteditor funktioniert, aber nicht in einem Textfeld auf einer Website. Irgendjemand anderes?
Eliot
6

Der keystrokeBefehl kann nur zum Einfügen von Zeichen verwendet werden, die sich im aktuellen Tastaturlayout befinden, und es gibt eine sichtbare Verzögerung für lange Textzeichenfolgen. Sie können Text auch direkt einfügen:

Diese Methode ist auch nicht wirklich brauchbar. In 10.7 und 10.8 gibt es einen Fehler, bei dem die Verknüpfungen für Automator-Dienste nicht immer funktionieren, bis Sie den Mauszeiger über das Menü "Dienste" bewegen.

Ich habe FastScripts verwendet , um dieses Skript F3 zuzuweisen:

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 sieht so aus:

m [email protected]
cmd ⌘

Eine andere Option ist die Verwendung von DefaultKeyBinding.dict . Dies würde dazu führen, dass ⌥M oder mX und m eine E-Mail-Adresse eingeben:

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

Sie können den angezeigten Popovers auch benutzerdefinierten Text hinzufügen, wenn Sie die Tasten gedrückt halten. Siehe diese Frage .

Lri
quelle
2

Suchen Sie nach einer App namens "Textexpander", mit der Sie Textphrasen wie @dd definieren können, die bei der Eingabe auf den definierten Inhalt erweitert werden - in diesem Fall auf das tatsächliche Datum.

AFAIK ist Shareware. Es ist also nicht kostenlos, aber der Demo-Modus ist nicht zeitlich begrenzt.

Heiglandreas
quelle
Nur eine kurze Notiz, falls es für andere nützlich ist - TextExpander funktioniert nicht in X11-Terminalfenstern.
ggkmath
2

Mit der Alfred-App können Sie dies - und vieles mehr - mithilfe der Funktionen Workflow und Snippets ausführen. Ich benutze Alfred die ganze Zeit und kann es nur empfehlen. Um Workflows freizuschalten, müssen Sie eine Powerpack-Lizenz bezahlen, aber Sie werden es nicht bereuen. 😉

mklbtz
quelle
Ich stimme zu, dies ist eine der nützlichsten Apps, die jeder Mac-Besitzer haben sollte. Ich bin vollständig von benutzerdefinierten Automator-Diensten auf Alfred migriert.
Slhck
1

Klicken Sie einfach auf: Systemeinstellungen, Tastatur, Text und geben Sie Ihre Verknüpfung und Phrase ein

Jonathan Huie
quelle
1
Ich mag diese Antwort, aber es erlaubt nicht wirklich "Tastaturkürzel" oder "Tastenkürzel", man muss immer noch einen Text (und keine Tastenkombination) eingeben, der vom Computer ersetzt wird.
MicroMachine
1
Dies scheint nur in einigen ausgewählten Apps zu funktionieren. Es funktioniert nicht an den meisten Orten, an denen ich es möchte, z. B. in den Eingabefeldern des Browsers, in meinem Mail-Client (Thunderbird), im Terminal usw.
Keine Panik
0

Eine separate Tastatur namens Martian Keyboard enthält Textzeichenfolgen wie Sätze und sogar kurze Absätze. Es erspart Ihnen die Eingabe lästiger Tastatureingaben, die Sie Tag für Tag wiederholen. Die Tasten funktionieren wie "Einfügen". Es bietet die Möglichkeit, alle Tastenkombinationen in Word mithilfe von Umschalttasten auf einer einzigen Tastatur zu speichern. Es ist hauptsächlich für den professionellen Einsatz gedacht und daher etwas teuer.

Rick
quelle