So erstellen Sie eine Textersetzung in der Befehlszeile anstelle von Systemeinstellungen> Tastatur> Text

420
user918753

Gibt es eine Möglichkeit, anstelle von System Preferences>> KeyboardTextersetzungen in der Befehlszeile zu erstellen Text?

Ich sehe, dass beim Exportieren von Textsubstitutionen eine HTML-Datei erstellt wird. Daher bin ich nicht sicher, ob Sie zum Importieren eine ähnliche HTML-Datei erstellen müssen.

Der Grund dafür ist, dass ich viele Tastenkombinationen habe, die in Windows erstellt wurden und sie auf einem Mac neu erstellen möchten. Ich würde es hassen, jeden von ihnen in der GUI erstellen zu müssen. Ich habe mich gefragt, ob es eine Befehlszeilenalternative gibt, da ein Mac ein Unix-Betriebssystem ist.

0

1 Antwort auf die Frage

0
CJK

Obwohl Sie eine Befehlszeilenlösung für Ihr Problem wollten, ist AppleScript in diesem Fall bei weitem die bessere Wahl, da das Generieren neuer Plist-Daten viel einfacher ist.

Mein untenstehendes Skript übernimmt den Inhalt einer angegebenen CSV-Textdatei, die Ihre alten Windows-Textsubstitutionen enthält, und generiert daraus eine .plistDatei, die Sie direkt per Drag-n-Drop in die Systemeinstellungen importieren können .

Um das Skript auszuführen, müssen Sie den Skript-Editor öffnen und die folgenden geringfügigen Anpassungen vornehmen, um sie an Ihre spezifischen Optionen anzupassen:

  • Ändern Sie den Wert der Eigenschaft csvf(Zeile 1) in den Pfad, in dem sich Ihre CSV-Datei befinden kann. Ich hatte meine auf dem Desktop, und es wurde genannt substitutions.txt;
  • Wenn Sie sich wirklich stark fühlen, können Sie den Wert der Eigenschaft plistf(Zeile 2) in einen neuen Pfad ändern . Diese Datei ist jedoch temporär und wird später gelöscht, wenn Sie fertig sind.
  • Ändern Sie zuletzt die Eigenschaft text item delimitersin das Zeichen, das als Feldtrennzeichen für Ihre CSV-Daten dient. Ich habe es derzeit auf festgelegt |, und meine CSV-Beispieldatei sah folgendermaßen aus:
    ABCDEFG | äbçdêfg 1234567 | 0000000 
    Dies entspricht zwei Textsubstitutionen, von denen der erste ABCDEFGinternationalen Kleinbuchstaben entspricht und der zweite 1234567sieben Nullen entspricht.

Das Skript enthält viele Kommentare, um zu beschreiben, was jeder Teil tut. Es ist aber auch sehr kurz und braucht nicht allzu viel Aufmerksamkeit. Nach dem Ausführen sollte die Datei substitutions.plistauf Ihrem Desktop angezeigt werden. Öffnen Sie Systemeinstellungen> Tastatur> Text, und ziehen Sie die .plistDatei in das große Listenfeld, um sie sofort zu importieren.

 property csvf : "~/Desktop/substitutions.txt" -- CSV file containing substitions to import property plistf : "~/Desktop/substitutions.plist" -- Plist file to which data is outputted  property text item delimiters : "|" -- The CSV field separator used in the csvf file property ReplacementItem :  global ReplacementItems  on run set ReplacementItems to {} -- a list to store text replacement record data  -- Read CSV values from text file and use -- them to create new text replacement items readFromCSVFile at csvf  -- Create plist file tell application "System Events" to set the value ¬ of (make new property list file ¬ with properties ) ¬ to the ReplacementItems end run  -- This handler receives arguments A and B, and creates -- a new text replacement record that will be used to -- map (substitute) text A to text B. on textReplacementToMap from A as text to B as text local A, B  tell the ReplacementItem set its shortcut to A set its phrase to B end tell  copy the ReplacementItem to the end of the ReplacementItems end textReplacementToMap  -- This handler receives a file path to a CSV file -- that contains a CSV-formatted list of text -- substitutions that will be read and used to create -- the new text replacement mappings to readFromCSVFile at f as text local f  tell application "System Events" if not (file f exists) then return set POSIXfile to the POSIX path of file f end tell  read the POSIXfile as «class utf8»  repeat with CSVitem in paragraphs of result try set [A, B] to CSVitem's text items textReplacementToMap from A to B end try end repeat end readFromCSVFile