Створення гарячої клавіші або клавіатурного скорочення для вставки певної текстової фрази в Mac OSX


19

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

Я б вважав за краще не купувати будь-які програми (здається, що Keyboard Maestro має цю функціональність, але здається нерозумним платити $ 36 тільки за це), хоча безкоштовні програми будуть добре. Намагалися шукати в розділі Системні налаштування & gt; Клавіатура & gt; Комбінації клавіш, але не очевидне рішення, і всі AppleScripts я знайшов, здається, не перекласти правильно для мене. Я знайшов інші рішення для цієї проблеми на цьому форумі для користувачів Windows (наприклад, AutoHotKey), але не для користувачів Mac.

Відповіді:


16

Найпростіший спосіб ввести текст з AppleScript:

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

Ви можете викликати це за допомогою комбінації клавіш, створивши нове Сервіс в Automator. Встановіть його для отримання Без введення , а потім перетягніть Запустіть AppleScript з лівої панелі праворуч.

Це має виглядати так:

Збережіть його, а потім призначте клавіатурне скорочення для цієї служби в розділі Системні налаштування »Клавіатура» Комбінації клавіш .


Wow, спасибі стільки @slhck! Я спробував це, але я маю проблеми на останньому кроці. Це не відображається в меню "Служби", коли я переходжу до "Комбінації клавіш" у Системних налаштуваннях. Я знаю, що він працює, тому що, коли я відкриваю Automator і натискаю кнопку Відтворити, текст надрукований у попередній програмі, але він не відображатиметься в службі, щоб я міг додати комбінацію клавіш, навіть якщо я зберегла її у своїй бібліотеці & gt; Папка послуг. За порадою інших форумів я Googled, я двічі перевірив, що службовий вхід був встановлений на "Служба отримує: немає входу" (це було) і спробував відновити Finder. Якісь думки?
Ruthie

Так ви зберегли його від Automator? Зазвичай він повинен з'являтися в параметрах клавіатурних скорочень, у розділі Послуги і Загальні на дні. Ви спробували вийти з системи та повернутися назад, або навіть перезапустити?
slhck

@slhck це звучить як відмінний спосіб зробити це, але чи могли б ви детально відповісти трохи більше? Я не вільно володію способом роботи Automator, коли я запускаю його, він просить мене "вибрати тип для вашого документа", а потім я теж втрачений. Тепер я піду з відповіддю Джонатана Хуі, але це все ще означає, що набравши щось ... Спасибі!
MicroMachine

@fabriced Потрібно створити a Сервіс в Automator.
slhck

2
Я вважаю, що це працює в текстовому редакторі, але не в текстовому полі на веб-сайті. Будь-хто інший?
Eliot

6

The 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 або andX і m вставляє адресу електронної пошти:

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

Ви також можете додати власний текст до вікон, що відображаються під час утримання клавіш. Подивитися це питання .


2

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

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


Тільки швидка примітка у випадку, якщо вона корисна для інших - TextExpander не працює на вікнах терміналу X11.
ggkmath

1

Просто натисніть на: Системні налаштування, Клавіатура, Текст, і введіть ярлик і фразу


1
Мені подобається ця відповідь, але вона дійсно не дозволяє "комбінації клавіш" або "гарячі клавіші", все ще потрібно ввести текст (а не комбінацію клавіш), який заміняється машиною.
MicroMachine

1
Це, здається, працює лише в кількох вибраних програмах. Він не працює в більшості місць, де мені це подобається, наприклад, поля введення в браузері, поштовий клієнт (Thunderbird), термінал і т.д.
Don't Panic

1

Альфред додаток Дозволяє робити це, а також багато іншого, використовуючи функції Workflow і Snippets. Я використовую Альфреда весь час і дуже рекомендую. Щоб розблокувати робочі процеси, ви повинні заплатити за ліцензію Powerpack, але ви не пошкодуєте.


0

На окремій клавіатурі називається марсіанська клавіатура, а текстові рядки, такі як речення та навіть короткі абзаци. Це врятує вас від набору настирливих натискань на клавіші, які ви набираєте знову і знову, через день день. Клавіші працюють як клавіші "вставка". Вона має можливість зберігати всі ярлики в Word на одній клавіатурі, використовуючи клавіші Shift Layer. Це в основному для професійного використання, тому це трохи дорожче.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.