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

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

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

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

27
задан robinCTS
05.05.2023 8:14 Количество просмотров материала 2721
Распечатать страницу

1 ответ

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

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

чтобы запустить скрипт, вам нужно открыть Редактор Скриптов и set внесите следующие незначительные изменения в соответствии с вашими конкретными параметрами:

  • изменить значение свойства csvf (строка 1) путь, по которому может быть расположен файл CSV. У меня был мой на рабочий стол, и она называлась substitutions.txt;
  • если вы действительно сильно об этом думаете, вы можете изменить значение свойства plistf (строка 2) на новый путь. Однако этот файл является временным, и вы будете его уничтожать позже, когда вы закончите;
  • наконец, измените свойство text item delimiters символ, который выступает в качестве разделителя полей для данных CSV. В настоящее время я установил его в |, и мой пример CSV-файла выглядел так:
    ABCDEFG|äbçdêfg
    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 : {phrase:missing value, shortcut:missing value}
    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 {name:plistf}) ¬
            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
0
отвечен CJK 2023-05-06 16:02

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх