19

У меня есть текстовая фраза (на самом деле, несколько этапов), которую я часто использую в нескольких приложениях. Я хотел бы создать комбинацию клавиш или горячую клавишу, которая будет вставлять эту текстовую фразу, куда бы я ни поместил курсор в поле ввода текста (Apple Mail, Microsoft Word, TextEdit, TextWrangler, окна браузера и т.д.), А не постоянно копировать и склеивание из записки.

Я бы предпочел не покупать какие-либо приложения (кажется, что Keyboard Maestro обладает такой функциональностью, но кажется, что глупо платить 36 долларов только за это), хотя бесплатные приложения были бы хорошими. Пробовал искать в Системных настройках> Клавиатура> Сочетания клавиш, но не нашел очевидного решения, и все найденные мной сценарии AppleScripts, похоже, не переводятся для меня должным образом. Я нашел другие решения этой проблемы на этом форуме для пользователей Windows (например, AutoHotKey), но не для пользователей Mac.

6 ответов6

16

Самый простой способ набрать текст с помощью AppleScript - это запустить:

tell application "System Events" to keystroke "foo bar"

Вы можете вызвать это с помощью сочетания клавиш, создав новую службу в Automator. Установите для него отсутствие ввода, а затем перетащите Запуск AppleScript с левой панели вправо.

Это должно выглядеть так:

Сохраните его, а затем назначьте сочетание клавиш для этой службы в Системные настройки »Клавиатура» Сочетания клавиш.

6

Команда keystroke может использоваться только для вставки символов, которые находятся в текущей раскладке клавиатуры, и для длинных строк текста существует видимая задержка. Вы также можете вставить текст напрямую:

Этот метод на самом деле тоже не годится. В 10.7 и 10.8 есть ошибка, из-за которой ярлыки для служб Automator не всегда работают, пока вы не наведете курсор на меню служб.

Я использовал FastScripts, чтобы назначить этот скрипт для F3:

try
    set old to the clipboard as record
end try
try
    tell application "System Events"
        key code 123 using {option down, shift down}
        keystroke "c" using command down
    end tell
    delay 0.05
    set input to the clipboard
    read POSIX file "/Users/lauri/Notes/snippets.txt" as «class utf8» using delimiter linefeed
    repeat with p in result
        considering case
            if p starts with (input & " ") then
                set the clipboard to text ((offset of space in p) + 1) thru -1 of p
                tell application "System Events" to keystroke "v" using command down
                delay 0.05
                exit repeat
            end if
        end considering
    end repeat
end try
try
    set the clipboard to old
end try

snippets.txt выглядит так:

m name@example.com
cmd ⌘

Другой вариант - использовать DefaultKeyBinding.dict. Это сделает ⌥M или ⌥X и m вставить адрес электронной почты:

{
    "~m" = (insertText:, "name@example.com");
    "~x" = {
        "m" = ("insertText:", "name@example.com");
    };
}

Вы также можете добавить собственный текст в всплывающие окна, отображаемые при удерживании клавиш Смотрите этот вопрос.

2

Найдите приложение под названием "Textexpander", которое дает вам возможность определять текстовые фразы, такие как @dd, которые - при вводе текста - будут расширены до определенного содержимого - в этом случае фактической даты.

AFAIK это Shareware. Так что это на самом деле не бесплатно, но демонстрационный режим не ограничен по времени.

1

Приложение Alfred позволяет вам делать это, а также многое другое, используя функции Workflow и Snippets. Я использую Альфред все время и очень рекомендую его. Чтобы разблокировать рабочие процессы, вы должны заплатить за лицензию Powerpack, но вы не пожалеете об этом.

1

Просто нажмите:«Системные настройки», «Клавиатура», «Текст» и введите свой ярлык и фразу

0

Отдельная клавиатура под названием "Марсианская клавиатура" будет содержать текстовые строки, такие как предложения и даже короткие абзацы. Это избавит вас от необходимости вводить раздражающие нажатия клавиш, которые вы набираете много раз, день за днем. Клавиши работают как клавиши вставки. Он имеет возможность хранить все ярлыки в Word на одной клавиатуре, используя клавиши переключения слоев. Это в основном для профессионального использования, так что это немного дороже.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .