Création d'un raccourci clavier ou d'un raccourci clavier pour coller une phrase de texte spécifique dans Mac OSX

21

J'ai une phrase de texte (en fait, plusieurs phases) que j'utilise fréquemment dans plusieurs applications. Je voudrais créer un raccourci clavier ou un raccourci clavier qui collera cette phrase de texte partout où j'ai placé mon curseur dans un champ de saisie de texte (Apple Mail, Microsoft Word, TextEdit, TextWrangler, fenêtres de navigateur, etc.) plutôt que de copier et de constamment coller à partir d'une note collante.

Je préférerais ne pas avoir à acheter d'applications (il semble que Keyboard Maestro possède cette fonctionnalité mais semble idiot de payer 36 $ juste pour cela), bien que les applications gratuites soient bien. J'ai essayé de regarder sous Préférences Système> Clavier> Raccourcis clavier mais pas de solution évidente, et tous les AppleScripts que j'ai trouvés semblent ne pas traduire correctement pour moi. J'ai trouvé d'autres solutions à ce problème sur ce forum pour les utilisateurs Windows (comme AutoHotKey) mais aucune pour les utilisateurs Mac.

Ruthie
la source

Réponses:

16

La façon la plus simple de taper du texte avec un AppleScript est d'exécuter:

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

Vous pouvez déclencher cela avec un raccourci clavier en créant une nouvelle action rapide (précédemment appelée Service ) dans Automator. Définissez-le pour qu'il ne reçoive aucune entrée , puis faites glisser Exécuter AppleScript du volet gauche vers la droite.

Ça devrait ressembler à ça:

Enregistrez-le, puis attribuez un raccourci clavier à ce service sous Préférences Système »Clavier» Raccourcis clavier .

slhck
la source
Wow, merci beaucoup @slhck! J'ai essayé cela, mais j'ai des problèmes à la dernière étape. Il n'apparaît pas dans le menu "Services" lorsque je vais dans "Raccourcis clavier" dans les Préférences Système. Je sais qu'il s'exécute car lorsque j'ouvre Automator et que je clique sur Lecture, le texte est tapé dans l'application précédente, mais il n'apparaîtra pas en service, je peux donc ajouter un raccourci clavier même si je l'ai enregistré dans mon dossier Bibliothèque> Services . Sur les conseils d'autres forums que j'ai recherchés sur Google, j'ai revérifié que l'entrée de service était définie sur "Le service reçoit: aucune entrée" (elle l'était) et j'ai essayé de relancer le Finder. Des pensées?
Ruthie
Vous l'avez donc enregistré dans Automator? Normalement, il devrait apparaître dans les options de raccourcis clavier, sous Services et Général en bas. Avez-vous essayé de vous déconnecter et de vous reconnecter, ou même de redémarrer?
slhck
@slhck, cela semble être un excellent moyen de le faire, mais pourriez-vous détailler un peu plus votre réponse? Je ne maîtrise pas le fonctionnement d'Automator, lorsque je le lance, il me demande de "choisir un type pour votre document", puis je suis un peu perdu. J'irai avec la réponse de Jonathan Huie pour l'instant mais cela implique quand même de taper quelque chose ... Merci!
MicroMachine
@fabriced Vous devez créer un service dans Automator.
slhck
2
Je trouve que cela fonctionne dans un éditeur de texte, mais pas dans un champ de texte sur un site Web. Quelqu'un d'autre?
Eliot
6

La keystrokecommande ne peut être utilisée que pour insérer des caractères qui se trouvent sur la disposition de clavier actuelle, et il y a un délai visible pour les longues chaînes de texte. Vous pouvez également insérer du texte directement:

Cette méthode n'est pas vraiment utilisable non plus. Il existe un bogue sur 10.7 et 10.8 où les raccourcis pour les services Automator ne fonctionnent pas toujours tant que vous n’avez pas survolé le menu des services.

J'ai utilisé FastScripts pour affecter ce script à 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 ressemble à ceci:

m [email protected]
cmd ⌘

Une autre option consiste à utiliser DefaultKeyBinding.dict . Cela ferait ⌥M ou ⌥X et m insérer une adresse e-mail:

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

Vous pouvez également ajouter du texte personnalisé aux fenêtres contextuelles affichées lorsque vous maintenez les touches. Voir cette question .

Lri
la source
2

Jetez un œil à une application appelée "Textexpander" qui vous donne la possibilité de définir des phrases textuelles comme @dd qui - une fois tapées - seront étendues au contenu défini - dans ce cas, la date réelle.

AFAIK c'est Shareware. Ce n'est donc pas réellement gratuit, mais le mode démo n'est pas limité dans le temps.

heiglandreas
la source
Juste une note rapide au cas où cela serait utile pour d'autres - TextExpander ne fonctionne pas sur les fenêtres de terminal X11.
ggkmath
2

L'application Alfred vous permet de le faire, ainsi que de nombreuses autres choses, en utilisant les fonctionnalités Workflow et Snippets. J'utilise Alfred tout le temps et je le recommande vivement. Pour déverrouiller les workflows, vous devez payer pour une licence Powerpack, mais vous ne le regretterez pas. 😉

mklbtz
la source
Je suis d'accord, c'est l'une des applications les plus utiles que quiconque possède un Mac devrait avoir. J'ai entièrement migré des services Automator personnalisés vers Alfred.
slhck
1

Cliquez simplement sur: Préférences Système, Clavier, Texte, et entrez votre raccourci et votre phrase

Jonathan Huie
la source
1
J'aime cette réponse, mais elle ne permet pas vraiment de "raccourci clavier" ou de "raccourci clavier", il faut quand même saisir un texte (et non une combinaison de touches) qui sera remplacé par la machine.
MicroMachine
1
Cela ne semble fonctionner que dans quelques applications sélectionnées. Cela ne fonctionne pas dans la plupart des endroits que j'aimerais, par exemple les champs de saisie du navigateur, mon client de messagerie (Thunderbird), Terminal, etc.
Don't Panic
0

Un clavier distinct appelé le clavier martien contiendra des chaînes de texte telles que des phrases et même de courts paragraphes. Cela vous évitera de taper des touches de nuisance ennuyeuses que vous tapez encore et encore, jour après jour. Les clés fonctionnent comme des clés "coller". Il a la possibilité de stocker tous les raccourcis dans Word sur un seul clavier, en utilisant les touches de couche de décalage. C'est principalement pour un usage professionnel, donc c'est un peu cher.

Meule
la source