Перейти к содержимому

Как скопировать код со скриншота на Mac, не перепечатывая его

Автор: Eduard Bruch, разработчик Optic · Обновлено

Чтобы скопировать код со скриншота на Mac, откройте изображение, выделите код с помощью инструмента OCR и вставьте текст в редактор. Затем один раз сверьте его с изображением, потому что OCR может путать символы вроде l и 1 или O и 0.

Коротко: для изображений в «Просмотре» или «Фото» сначала попробуйте Live Text. Для кода в окне любого приложения, видео или чате мой выбор — Optic, приложение для строки меню, которое копирует текст из любой выделенной на экране области (4,99 $ (разовая покупка) в Mac App Store).

Раскрытие информации: я делаю Optic.

Почему перепечатывание кода приводит к ошибкам

Код строг. Одна неверная кавычка, пропущенная скобка или перепутанные l и 1 ломают команду, а ошибка часто не указывает на настоящую причину. Перепечатывание длинной строки docker run или вызова curl с несколькими флагами — именно то место, где случаются такие промахи.

Код постоянно оказывается в изображениях: фрагменты, опубликованные в соцсетях как красивые скриншоты, учебные материалы, где примеры показаны картинками, старые вики-страницы, полные снимков терминала, и код, пересланный скриншотами в Slack или Teams.

Сначала попробуйте Live Text

Live Text в macOS работает там, где его поддерживает Apple: изображения в «Просмотре», «Фото», «Быстром просмотре» и Safari. Откройте скриншот в «Просмотре», наведите указатель на код, пока он не превратится в текстовый курсор, выделите и нажмите Command-C.

Live Text не работает в произвольных окнах приложений, видеозвонках и тексте, нарисованном внутри интерфейса приложения. Если код находится в видеоплеере, удалённом рабочем столе или демонстрации экрана, нужен инструмент OCR экрана.

Скопируйте код с Optic

Optic читает всё, что есть на экране, внутри рамки, которую вы рисуете. Сам он файлы изображений не открывает, поэтому сначала откройте скриншот в «Просмотре», браузере или любом просмотрщике.

  1. Нажмите значок Optic в строке меню.
  2. Выберите Захватить текст.
  3. Выделите рамкой код. Если на изображении есть номера строк, оставьте их за рамкой.
  4. Вставьте в редактор сочетанием Command-V.

Когда текст готов, появляется небольшое уведомление «Скопировано в буфер обмена».

Включите режим кода

В настройках Optic для этой задачи предназначен Режим кода (сохранять отступы). Он сохраняет отступ каждой строки по положению текста на изображении и отключает языковую коррекцию, чтобы распознаватель не «исправлял» идентификаторы на слова из словаря. Оставьте его включённым, пока копируете код, и выключайте для обычной прозы.

Переносы строк по умолчанию сохраняются (Сохранять), что и нужно для кода. Другие варианты, Удалять и Умное объединение, предназначены для абзацев.

Проверьте, прежде чем запускать

Распознавание выполняется на вашем Mac с помощью распознавания текста Vision от Apple. Оно хорошо справляется с чётким, контрастным текстом, но это всё равно OCR. Прежде чем вставлять команду в терминал, сверьте её с изображением, особенно:

  • кавычки и обратные апострофы
  • l, 1, I и O, 0
  • дефисы и длинные тире во флагах
  • отступы в Python или YAML

Более крупный текст распознаётся лучше, поэтому увеличьте изображение перед выделением, если шрифт мелкий.

Несколько фрагментов подряд

Каждый захват попадает в историю Optic во всплывающем окне в строке меню, где хранятся последние 20 захватов с миниатюрой. Если в учебнике пять шагов, захватывайте их один за другим и копируйте каждый снова из истории, когда понадобится. История остаётся на вашем Mac.

Где Optic не подходит

  • Он не открывает файлы изображений или PDF. Код должен быть виден на экране.
  • Он работает с одним выделением за раз. Он не обрабатывает папки со скриншотами или целые документы.
  • Он копирует обычный текст. Он не сохраняет цвета синтаксиса и не определяет язык программирования.
  • Для чтения экрана ему нужно разрешение macOS «Запись экрана».

Подробнее по этой теме: OCR для фрагментов кода на Mac и как скопировать текст из чего угодно на экране. Если вы сравниваете приложения, есть обзор приложений OCR экрана для Mac.

FAQ

Может ли Mac скопировать код с изображения без дополнительных приложений?

Часто да. Live Text в «Просмотре», «Фото», «Быстром просмотре» и Safari позволяет выделять текст на изображениях. Он не работает с видео, демонстрацией экрана и текстом внутри окон других приложений. Для кода в любом другом месте экрана мой выбор — Optic с включённым режимом кода.

Сохраняет ли Optic отступы в коде?

При включённом в настройках режиме кода Optic сохраняет отступ каждой строки по её положению на изображении. Проверьте результат для Python и YAML, где отступы важны.

Нужно ли Optic подключение к интернету?

Нет. Распознавание текста выполняется на Mac, а у приложения нет доступа к сети.

Почему в вставленном коде неверные символы?

OCR может путать похожие символы, например l и 1. Увеличьте мелкий текст перед захватом, используйте режим кода и сверьте результат с изображением.

Установить Optic из Mac App Store · Все факты об Optic