Masse de mappages clavier / texte dans Mavericks

3

Sous Préférences système / Clavier / Texte, vous pouvez entrer une liste de "corrections orthographiques" pouvant facilement servir de macro-remplaçant pour une saisie rapide.

Il est facile de les entrer un par un, mais existe-t-il un moyen de charger en masse une longue liste de mappages?

Dites à partir d'une sorte de fichier texte comme un fichier .csv? Ou pourrais-je potentiellement écrire quelque chose dans AppleScript pour le faire?

De plus, y a-t-il une limite au nombre de mappages que je fais?

Je pense à l'ordre de milliers.

kfmfe04
la source

Réponses:

4

Les paramètres sont stockés dans ~ / Bibliothèque / Preferences / .GlobalPreferences.plist dans le tableau NSUserDictionaryReplacementItems dans 10.9 et dans le tableau NSUserReplacementItems dans 10.8 et les versions antérieures. Le format du tableau n'a pas changé. Par conséquent, les commandes ci-dessous doivent fonctionner dans les versions 10.8 et antérieures d'OS X si vous remplacez NSUserDictionaryReplacementItems par NSUserReplacementItems.

Imprimer les paramètres actuels:

defaults read -g NSUserDictionaryReplacementItems

Ajouter un paramètre:

defaults write -g NSUserDictionaryReplacementItems -array-add '{on=1;replace=cmd;with="⌘";}'

Remplacer tous les paramètres:

defaults write -g NSUserDictionaryReplacementItems '(
{on=1;replace=cmd;with="⌘";},
{on=1;replace=opt;with="⌥";}
)'

Imprimer les paramètres actuels au format XML:

defaults read -g NSUserDictionaryReplacementItems | plutil -convert xml1 - -o -

Remplacer tous les paramètres:

amp() { local x=${1//&/&amp; }; x=${x//</&lt; }; printf %s "${x//>/&gt; }"; }
out='<array>'
while IFS= read -r l; do
  out+="<dict><key>on</key><integer>1</integer><key>replace</key><string>$(amp "${l%% *}")</string><key>with</key><string>$(amp "${l#* }")</string></dict>"
done <<< 'cmd ⌘
opt ⌥'
defaults write -g NSUserDictionaryReplacementItems "$out</array>"

Vous pouvez appliquer les modifications apportées avec les valeurs par défaut en quittant et en rouvrant des applications.

Lri
la source
1
Impressionnant. Juste pour ajouter: je pense qu’il serait peut-être possible de placer le defaults writedans un fichier que vous pourrez ensuite sauvegarder et réutiliser plus tard. Je commencerais certainement par moins de mille au début et je m'assurerais que le processus fonctionne comme prévu. IIRC, ces synchroniser via iCloud à iOS de Mavericks. Aucune idée s'il y a une limite pratique au nombre que vous pouvez faire.
TJ Luoma