Système -> Préférences -> Clavier -> Texte
Eric P.
Membre
Bonjour,
Est-il possible d'appliquer à un texte créé par code les raccourcis définis dans les "Préférences -> Clavier -> Texte" par exemple pour remplacer ^2 par ² ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Manuellement, tu peux apparemment les sélectionner, et les glisser déposer dans le Finder, cela te créera un .plist.
L'inverse est possible pour les importer...
Ensuite, tu fais ton replacement...
Y'a un fichier ~/Library/KeyboardServices/TextReplacements.db SQL qui pourrait peut-être te les donner, mais je ne suis même pas sûr que ce soit le bon...
Y'a peut-être aussi un BinaryPlist (encodé via
NSArchiver
) dans~/Library/Keyboard/textReplacements.cache
qui semble être un bon candidat...Ou suivre les infos de ce post
Pas sûr qu'il y ait un API ouverte, mais sait-on jamais...
Merci Larme, je vais voir de ce côté.
Curieux par ce decoding, j'ai appris une nouvelle trouvaille de debug...
Je vais l'utiliser sur mon propre
textReplacements.cache
.Quand je voyais des
(NS)Data
qui correspondaient à des NSArchives, je le savais car je faisaisString(data: archivedData, encoding: someEncoding)
(en général, j'y passe tous les encodings, car je ne me rappelle jamais du quel affiche un truc).J'ai même d'ailleurs ça dans mes méthodes de debug :
Et donc, quand je vois ça :
bplist00Ф X$versionY$archiverT$topX$objects�†
, avec bplist, pour Binary PList notamment, et "archiver" plus loin, je sais que c'est un truc qui vient deNS(Secure)Coding
, et donc deNSArchiver
(ouNSKeyedArchiver
, etc.)Mais, voici une petite astuce pour avoir un truc plus lisible :
Ce qui print :
Bien plus pratique.
On voit d'ailleurs le "jrv/j'arrive", qui est un des shortcuts par défaut.
On pourrait aller plus loin je pense dans le debug, mais bon...
Là, le
NSDictionary
devrait suffire largement, on devrait pouvoir itérer dessus, faudrait voir ce que ça donne aved d'autres entrées de shortcuts...Au passage, on notera la version dégueulasse de traduction de la méthode qui a gardé le paramètre
error
, mais enVoid
...Cette petite méthode bien pratique m'avait déjà été utile, puis qu'elle permet de lire les fichiers localizable.strings, les transformants en dictionnaires...
Attention que
~/Library/Keyboard/textReplacements.cache
n'existe pas forcément.Sur mon système (12.4) il n'existe pas et pourtant j'ai des shortcuts qui existent.