Як створити заміну тексту в командному рядку замість Налаштування системи> Клавіатура> Текст


0

Чи є спосіб , щоб створити текстові підстановки в командному рядку замість System Preferences> Keyboard> Text?

Я бачу, що коли ви експортуєте текстові заміни, він створює файл html, тому я не впевнений, чи потрібно вам створити подібний файл html, щоб імпортувати їх.

Причиною цього є те, що у мене є багато клавіш швидкого доступу, які були створені в Windows, і я хотів би відновити їх на Mac. Мені б не хотілося створювати кожен із них у графічному інтерфейсі. Мені було цікаво, чи існує альтернатива командного рядка, оскільки Mac - це ОС з ароматом Unix.

Відповіді:


0

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

Мій сценарій нижче буде містити вміст визначеного текстового файлу CSV, який містить старі текстові підстановки Windows, і використовує його для створення .plistфайлу, який ви можете імпортувати безпосередньо в системні налаштування за допомогою перетягування n-drop.

Щоб запустити сценарій, вам потрібно буде відкрити редактор сценаріїв і встановити наступні незначні коригування відповідно до ваших конкретних параметрів:

  • Змініть значення властивості 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.