Как создать текстовую подстановку в командной строке вместо системных настроек> Клавиатура> Текст

292
user918753

Есть ли способ, чтобы создать текстовые подстановки в командной строке вместо System Preferences> Keyboard> Text?

Я вижу, что когда вы экспортируете текстовые замены, он создает HTML-файл, поэтому я не уверен, нужно ли вам создавать аналогичный HTML-файл для их импорта.

Причина этого в том, что у меня есть много сочетаний клавиш, которые были созданы в Windows, и я хотел бы воссоздать их на Mac. Я бы не хотел создавать каждый из них в графическом интерфейсе. Мне было интересно, была ли альтернатива командной строки, так как Mac - это ОС со вкусом Unix.

0

1 ответ на вопрос

0
CJK

Несмотря на то, что вы хотели решить проблему из командной строки, AppleScript - лучший выбор в этом случае, так как генерировать новые plist-данные намного проще.

Мой скрипт ниже возьмет содержимое указанного текстового файла CSV, который содержит ваши старые текстовые замены Windows, и использует его для создания .plistфайла, который вы можете импортировать непосредственно в Системные настройки с помощью перетаскивания.

Чтобы запустить скрипт, вам нужно открыть Script Editor и внести следующие незначительные изменения в соответствии с вашими конкретными настройками:

  • Измените значение свойства csvf(строка 1), указав путь к вашему CSV-файлу. У меня был мой на рабочем столе, и он был назван substitutions.txt;
  • Если вы действительно сильно к этому относитесь, вы можете изменить значение свойства plistf(строка 2) на новый путь. Однако этот файл является временным, и вы его уничтожите позже, когда закончите;
  • Наконец, измените свойство text item delimitersна символ, который действует как разделитель полей для ваших данных CSV. В настоящее время я установил его на|, и мой образец CSV-файла выглядел так:
    АБВГДЕЖ | АБВГДЕЖ 1234567 | 0000000 
    что соответствует двум текстовым подстановкам, первая из которых ABCDEFGсоответствует международным строчным эквивалентам, а вторая 1234567- семи нулям.

Скрипт содержит множество комментариев, чтобы описать, что делает каждая часть. Но это также очень коротко и не потребует слишком много внимания. После его запуска файл substitutions.plistдолжен появиться на рабочем столе. Откройте Системные настройки> Клавиатура> Текст и перетащите .plistфайл в большой список, чтобы сразу импортировать его.

 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 

Похожие вопросы