本文へスキップ

MacでコードスニペットをOCR:コードをコピーする

執筆:Eduard Bruch(Optic 開発者) · 更新

画像としてしか表示されないコードをコピーするには、OCRで画面から読み取り、実行する前に確認します。ライブテキストはAppleのアプリ内の画像で使え、コードモード付きの画面OCRアプリはどこでも使えて、インデントを保持します。

短い答え: プレビューで開けるスクリーンショット内のコードには、ライブテキストを試してください。動画内のコード、チャット内のIDEのスクリーンショット、画像だけのドキュメントには、私のおすすめはOpticです。画面上でドラッグした任意の範囲のテキストをコピーするメニューバーアプリで(Mac App Storeで4.99 米ドル(買い切り))、コード向けのコードモードがあります。

開示:私はOpticを開発しています。

コードが最も打ち直しにくいテキストである理由

文章は小さな間違いを許してくれますが、コードは許しません。アンダースコアの代わりのハイフン一つでimportが壊れ、閉じ括弧が一つ抜けると関数が壊れ、場違いな小文字一つで変数が変わります。長いシェルコマンド、正規表現のパターン、設定ブロックは、まさに人がスクリーンショットで共有するもので、まさに最も打ち間違えやすいものです。

方法1:ライブテキスト

ライブテキストはAppleが対応する場所で動作します。プレビュー、写真、クイックルック、Safari内の画像と、一部のプレーヤーでの一時停止した動画のフレームです。任意のアプリのウインドウ、ビデオ通話、UIのテキストでは動作しません。プレビューにあるコードの一枚のスクリーンショットなら、テキストを選択してコピーしてみる価値があります。貼り付けた後でインデントを確認してください。一般的なテキスト認識がよく苦戦するのはそこです。

方法2:コードモード付きのOptic

Opticは、画面上のどこからでもコードを読み取ります。チュートリアルのページ、一時停止した動画、Slackのスクリーンショット、プルリクエストのコメントなどです。

  1. Opticの設定でコードモードをオンにします(最初の一度だけ)。
  2. コードを画面に表示します。
  3. メニューバーのOpticアイコンをクリックし、テキストをキャプチャを選びます。
  4. スニペットの上にボックスをドラッグします。
  5. Command-Vで、エディタやターミナルに貼り付けます。

コードモードで変わること:

  • インデントが保持されます。 Opticは、画像内でテキストがある位置から各行のインデントを割り出すので、入れ子のブロックは入れ子のまま出てきます。PythonやYAMLでは重要なことです。
  • 言語の自動補正がオフになります。 通常のテキスト認識は、珍しい単語を本物の単語に近づけて「補正」することがあります。コードではそれが識別子を変えてしまうので、コードモードはこれをオフにします。

認識はMac上のAppleのVisionフレームワークを使い、インターネットは不要で、Opticにはネットワークアクセスがありません。スクリーンショットに社内のコードが映っている場合に役立ちます。

よくある場面

  • ドキュメント内のターミナルコマンド。 ターミナルのスクリーンショットから、インストールやビルドのコマンドをコピーします。
  • 同僚からのIDEのスクリーンショット。 チャット内のスクリーンショットから、実際に読んでテストできるエディタにコードを取り出します。MacでSlackの画像からテキストをコピーするをご覧ください。
  • コーディングの動画。 動画を一時停止して、画面上のコードをキャプチャします。
  • 一つのチュートリアルの複数のスニペット。 各ブロックを順にキャプチャします。直近20件のキャプチャがメニューバーの履歴に残るので、プロジェクトでそこに着いたときにそれぞれをもう一度コピーできます。

実行する前に確認する

OCRは、鮮明で高解像度のコードには強いですが、それでも似た文字、0とO、1とlとI、まっすぐな引用符と曲がった引用符を取り違えることがあります。特に小さい、またはぼやけたテキストではそうです。実行する前に、貼り付けたものを通して読み、エディタの構文ハイライトに変なところを指摘させてください。OCRの出力を読まずに、root権限のシェルへそのまま貼り付けてはいけません。

Opticが向かない場面

  • ファイルの取り込みはありません。 画像やPDFは開きません。先に画面に表示してください。
  • バッチ処理はありません。 一回のドラッグで一回のキャプチャなので、コードの一覧が載った30ページのPDFは、文書OCRツールの仕事です。
  • 構文の認識はありません。 Opticは文字を認識するだけで、コードのチェックや整形はしません。
  • 手書き。 ホワイトボードの写真のコードを読み取れるとは、Opticは約束していません。

コードのスクリーンショットについて詳しくは、Macでスクリーンショットからコードをコピーするをご覧ください。

FAQ

MacでYouTubeのチュートリアルからコードをコピーするにはどうしますか?

動画を一時停止してコードを鮮明にし、コードモードをオンにしたOpticのような画面OCRアプリでその上をドラッグして、エディタに貼り付けます。

OCRはコードのインデントを保持しますか?

Opticのコードモードならできます。インデントは各行の位置から再構築されます。コードモードがないと、多くのOCRツールは先頭のスペースなしで行を返します。

OCRしたコードは実行できるほど信頼できますか?

たいてい近いですが、確認してください。似た見た目の文字が典型的な誤りなので、実行する前にコードを読んでください。

Opticは私のコードをどこかに送信しますか?

いいえ。認識はMac上で行われ、アプリにはネットワークアクセスがありません。

Mac App StoreでOpticを入手 · Opticの情報すべて。OpticにはmacOS 14 Sonoma以降が必要です。ツールを比較していますか?OpticとTextSniperの比較をご覧ください。