Wie exportiere ich Textersetzungen aus der Tastatursystemeinstellung von der Shell?

Hier gibt es einige Benutzer, die denselben Ersetzungstext zwischen mehreren Maschinen verwenden. Wir möchten in der Lage sein, die Ersatztabelle zwischen den Systemen zu synchronisieren.

Im Moment besteht die manuelle Vorgehensweise darin, alle Elemente aus den Systemeinstellungen -> Tastatur -> Texteinträge in der Tabelle unterhalb dieser Registerkarte auszuwählen und sie dann in den Finder zu ziehen. Hier ist die Tabelle, die ich meine:Beispiel

Dadurch wird eine Plist erstellt, die dann freigegeben und zum Importieren zurück in diese Tabelle gezogen werden kann.

Ich vermute, dass es eine Möglichkeit gibt, die Plist oder einen Teil dieser Konfiguration, wo immer sie vorhanden ist, manuell zu erfassen und dann einfach ein Synchronisierungsskript einzurichten, das uns alle jeden Tag synchron hält.

BEARBEITEN: Für das, was es wert ist, habe ich ein wenig gegraben und festgestellt, dass diese Werte in gespeichert sind ~/Library/Preferences/.GlobalPreferences.plist. Wenn Sie nachsehen, sehen Sie, dass diese im NSUserDictionaryReplacementItemsSchlüssel gespeichert sind.

Ich habe festgestellt, dass Sie diese Schlüssel mit dem folgenden Befehl herausziehen können:/usr/libexec/PlistBuddy -c "Print :NSUserDictionaryReplacementItems" ~/Library/Preferences/.GlobalPreferences.plist

Jetzt geht es also darum, diese zu speichern und wieder in den Plist-Schlüssel eines anderen Systems einzufügen.

Irgendwelche Ideen, wie man dies manuell von der Shell aus tun kann, um es automatisieren zu können?

Die Frage nicht wirklich beantworten, aber vielleicht den zugrunde liegenden Bedarf ansprechen: Die iCloud-Synchronisierung von Textersetzungen sollte in iOS 11 und MacOS 10.13 High Sierra behoben werden. daringfireball.net/linked/2017/09/27/…
Danke, ja, das hätte ich selbst merken sollen. Dies ist geholfen (obwohl ich es immer noch gerne tun würde). Komischerweise scheint es als Antwort auf eine Feature-Anfrage gekommen zu sein, die ich an Apple gerichtet habe. LOL. Ich gebe Ihnen eine positive Stimme, obwohl ich dies immer noch als noch nicht beantwortet lassen möchte, um eine tatsächliche Antwort zu erhalten, falls vorhanden ...

Antworten (3)

Es gibt ein inoffizielles Befehlszeilentool, das genau das tut, was Sie wollen, nämlich Shortcuts . Wie auf GitHub erwähnt, können Sie es über Homebrew installieren

brew install rodionovd/taps/shortcuts

und listen Sie dann Ihre aktuellen Ersetzungen über auf

shortcuts read

und neue hinzufügen über

shortcuts import <input.plist>
shortcuts create <shortcut> <new phrase>
shortcuts update <shortcut> <phrase>
shortcuts delete <shortcut>

Einzelheiten finden Sie in der Dokumentation .

Einfach cmd+a auf die Textersetzungsdateien ziehen, sie auf den Desktop ziehen, diese Datei per E-Mail senden, per Drag & Drop zurück auf die Textersetzung in den Einstellungen auf dem neuen MacBook ziehen, fertig

Wenn es hilft, wenn Sie nur ein nicht bootfähiges Backup des alten Systems haben, funktioniert es möglicherweise nicht, die Einträge einfach manuell aus der .GlobalPreferences.plist zu holen, da die Einträge dort anders formatiert sind. Möglicherweise müssen Sie etwas suchen und ersetzen, damit dies funktioniert

        <dict>
        <key>on</key>
        <integer>1</integer>
        <key>replace</key>
        <string>shruggie</string>
        <key>with</key>
        <string>¯\_(ツ)_/¯</string>
    </dict>

wird

        <dict>
        <key>shortcut</key>
        <string>shruggie</string>
        <key>phrase</key>
        <string>¯\_(ツ)_/¯</string>
    </dict>