Назад к блогу

Voicr Team · 14 мая 2026 г.

Подстановка текста на Mac: бесплатная и приватная альтернатива

Хватит перепечатывать одни и те же письма, адреса и подписи. Рассказываем, как разворачивать короткие триггеры в полные тексты в любом Mac-приложении — без подписки на TextExpander.

Подстановка текста на Mac: бесплатная и приватная альтернатива

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

Каждый раз — пара секунд. Умножьте на двадцать, на сотню, на тысячу за год — и время складывается во вполне осязаемые часы. Подстановка текста позволяет вернуть эти минуты, и на Mac за это не нужно платить подписку.

Что такое подстановка текста на самом деле

Подстановка текста — это простая идея. Вы сохраняете короткое слово-триггер. Программа следит за тем, что вы печатаете. Как только вы закончили набирать триггер, он автоматически заменяется на длинный фрагмент текста.

Набираете `addr` и пробел — появляется ваш домашний адрес. Набираете `sig` — в письмо вставляется полная подпись. Набираете `meet` — встаёт пять предложений с описанием ваших предпочтений по расписанию встреч.

Механика у всех инструментов одинаковая. Небольшой фоновый процесс отслеживает клавиатуру, сверяет введённые символы со списком сохранённых триггеров и, когда находит совпадение, удаляет триггер и вставляет на его место разворачиваемый текст. Одни инструменты имитируют вставку из буфера, другие набирают символы по одному. Для пользователя поведение неотличимо.

Проблема TextExpander

TextExpander много лет был дефолтным решением. Работает он исправно. Но персональный тариф в 2026 году стартует от $4,16 в месяц, а командные планы стоят ещё дороже. За время жизни одного Mac это сотни долларов за функцию, которая по сути занимает несколько сотен строк кода.

Дело даже не в цене, а в архитектуре. Сниппеты синхронизируются через облако TextExpander — именно так вы получаете одни и те же сокращения на втором Mac или iPhone. Но это же означает, что ваш адрес, подписи, сохранённые шаблонные ответы и всё остальное, что вы храните в виде сниппетов, проходит через чужие серверы.

Большинству людей это безразлично. Но для фрилансеров, работающих с клиентскими данными, для разработчиков, у которых в сниппетах лежат API-ключи и внутренние URL, для всех, кто работает в регулируемых отраслях, это реальная проблема. Подстановка текста — едва ли не единственная крупная категория продуктивности, где доминирующий платный инструмент по-прежнему по умолчанию синхронизируется через облако.

Mac со сниппетами, которые хранятся локально внутри иконки с маленьким щитом, в сравнении с обычным устройством, отправляющим сниппеты на облачный сервер

Чем отличается приватный подстановщик текста

Приватному подстановщику не нужно «звонить домой». Ваши сниппеты лежат в локальной базе на вашем Mac. Сопоставление нажатий клавиш происходит целиком на устройстве. Ничего из того, что вы печатаете, не покидает машину.

Архитектура у приватных решений в целом одинаковая: - Буфер нажатий — инструмент держит в памяти короткий скользящий буфер, обычно последние 50–100 символов. Когда вы нажимаете пограничный символ — пробел, знак препинания, Return или Tab, — он проверяет, не совпадает ли хвост буфера с каким-то из сохранённых триггеров. Совпало — разворачивает. Не совпало — продолжает слушать. - Очистка буфера — буфер обнуляется при каждом переключении приложений, при нажатии модификатора и после каждого срабатывания триггера. Никакой длинной истории ввода инструмент не хранит. Только последние несколько символов в активной памяти. - Сопоставление на устройстве — код, отвечающий за поиск совпадений, — это чистая проверка строк. Никаких сетевых вызовов. Никаких запросов в облако. Текст подстановки берётся из локального файла и вставляется через системный буфер обмена или имитацией нажатий клавиш.

Именно так устроен Espanso. Так работает встроенная замена текста в macOS. И так работает движок сниппетов Voicr — об этом ниже.

Сниппеты, которые экономят больше всего времени

Быстрее всего окупаются те триггеры, которые вы набираете на автомате. Пробегитесь глазами по тому, что писали на прошлой неделе, — отправленные письма, сообщения в Slack, комментарии в коде — и вы быстро их вычислите. Категории, которые встречаются почти у всех:

Личные контактные данные — `addr` для домашнего или рабочего адреса, `phone` для номера телефона, `email` для основного почтового адреса. Всё, что вы уже набирали тысячи раз. Три триггера — мгновенная отдача.

Подписи к письмам — разные подписи для разных контекстов. `sig` — для рабочей, `sigp` — для личной, `sigs` — для короткой однострочной версии, которую вы используете в чате.

Шаблонные ответы — сообщения, которые вы отправляете каждую неделю. «Спасибо, что написали, сейчас не беру новых клиентов». «С удовольствием обсудим, вот ссылка на мой календарь». Вежливый отказ. Каждое такое сообщение превращается в двухсимвольный триггер, за который вы себя ещё не раз поблагодарите.

Шаблоны для кода и документации — для разработчиков очевидные кандидаты — заголовки лицензий, типовые блоки импортов, форматтеры логов. Кто-то идёт дальше и хранит в триггерах целые шаблоны для бойлерплейта проектов.

Структуры Markdown — каркасы таблиц, блоки frontmatter, синтаксис ссылок, который всё время забывается. Триггер `tbl` разворачивается в таблицу на три колонки. Триггер `fm` вставляет блок frontmatter с заранее заполненными полями title, date и slug.

Большинство людей останавливается на пяти-десяти триггерах — дальше начинает страдать память. Это же тот объём, где собирается 80% экономии времени. Не нужно пятидесяти триггеров. Нужны пять правильных.

Динамические сниппеты с плейсхолдерами

Статичные сниппеты закрывают чистый бойлерплейт. Плейсхолдеры нужны там, где маленький кусочек меняется при каждом использовании — обычно это дата, время или то, что у вас сейчас в буфере обмена.

Трёх плейсхолдеров хватает почти на все реальные сценарии:

`{date}` — подставляется сегодняшняя дата в момент срабатывания сниппета. Триггер `notes` разворачивается в `Заметки со встречи 14.05.26` — дата всегда актуальная, править руками ничего не нужно.

`{time}` — текущее время. Полезно для меток в логах, заметках на ежедневном стендапе или для любых записей-журналов.

`{clipboard}` — то, что сейчас лежит у вас в буфере обмена. Скопировали URL, набрали триггер `cite` — сниппет оборачивает ссылку в готовую цитату. В нормальных реализациях исходное содержимое буфера восстанавливается после подстановки, чтобы ничего не затиралось.

В некоторых инструментах есть и больше — `{cursor}` для позиционирования курсора после подстановки, `{form}` для заполняемых форм, regex-захваты прямо из триггера. Но за это приходится платить сложностью: каждый новый плейсхолдер — это ещё одна вещь, которую надо помнить. Трёх выше хватает на сценарии, которые реально встречаются изо дня в день.

Голосовой ввод и подстановка текста в одном приложении

Большинство пользователей Mac, которым важно печатать меньше, в итоге держат в menu bar две утилиты. Одну — для диктовки писем и длинных текстов. Вторую — отдельный подстановщик для бойлерплейта. Две иконки. Две панели настроек. Две подписки.

Логично их объединить. Внутренняя механика во многом совпадает: оба инструмента слушают клавиатуру, оба вставляют текст в активное приложение. Категории разошлись просто исторически, а не потому, что у них принципиально разные сценарии.

Voicr — это приложение для голосового ввода на macOS, в которое встроен движок подстановки текста как стандартная функция. Зажмите FN и продиктуйте длинное письмо. Или наберите `addr` с пробелом — и адрес развернётся сам. Одна иконка в menu bar. Одна панель настроек. Один Free-план.

Движок подстановки работает только локально. Скользящий буфер на 64 символа в памяти сверяет нажатия с вашими триггерами. Буфер обнуляется при каждом переключении приложений, при каждом нажатии модификатора и после каждого успешного срабатывания. Никакой облачной синхронизации, никаких сетевых запросов, никаких скриншотов экрана. Сниппеты лежат в локальной базе приложения — никуда не отправляются и доступны только вам.

И всё это идёт в Free-плане. Пять тысяч слов диктовки в месяц плюс безлимитные сниппеты — без карты, без подписки. Если вы и так присматриваетесь к приложению для диктовки, в сравнении Voicr vs Wispr Flow разобраны компромиссы между локальной и облачной обработкой голоса.

С чего начать

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

Сохраните эти три. Используйте неделю. Если уже потянулись за четвёртым триггером — заметили, что какую-то фразу набирали три раза подряд и захотелось сокращения, — мышечная память сформировалась и дальше будет только проще.

Если не хочется тратить время на поиски и установку отдельных утилит, Voicr закрывает диктовку, подстановку текста и место в menu bar одним приложением. Free-план — это 5000 слов голосового ввода в месяц и безлимитные сниппеты. Без карты, без таймера на триал, без подписки до тех пор, пока вы сами не решите, что хотите остаться.

Зажмите FN, говорите, вставляйте. Наберите триггер, нажмите пробел — текст развернётся. Та же иконка, то же приложение. И ничего не покидает ваш Mac.