Macでスクリーンショットからコードを打ち直さずにコピー
執筆:Eduard Bruch(Optic 開発者) · 更新
Macでスクリーンショットからコードをコピーするには、画像を開き、OCRツールでコードを選択して、そのテキストをエディタに貼り付けます。その後、画像と照らして一度読み合わせてください。OCRはlと1、Oと0のような文字を取り違えることがあるからです。
短い答え: プレビューや写真の画像には、まずライブテキストを試してください。アプリのウインドウ、動画、チャット内のコードには、私のおすすめはOpticです。画面上でドラッグした任意の範囲のテキストをコピーするメニューバーアプリです(Mac App Storeで4.99 米ドル(買い切り))。
開示:私はOpticを開発しています。
コードを打ち直すと失敗する理由
コードは厳密です。引用符の間違い、閉じ括弧の抜け、lと1の取り違えが一つあるだけでコマンドは動かなくなり、エラーが本当の原因を指していないことも多いのです。長いdocker runの行や、複数のフラグ付きのcurlの呼び出しを打ち直すのは、まさにそうしたミスが起きる場面です。
コードはしょっちゅう画像になります。SNSにきれいなスクリーンショットとして投稿されたスニペット、例を画像で見せるチュートリアル、ターミナルのキャプチャだらけの古いWikiページ、SlackやTeamsにスクリーンショットとして転送されるコードなどです。
まずライブテキストを試す
macOSのライブテキストは、Appleが対応する場所で動作します。プレビュー、写真、クイックルック、Safari内の画像です。スクリーンショットをプレビューで開き、ポインタをコードの上に動かしてテキストカーソルに変わったら、選択してCommand-Cを押します。
ライブテキストは、任意のアプリのウインドウ、ビデオ通話、アプリのインターフェイス内に描画されたテキストでは動作しません。コードが動画プレーヤー、リモートデスクトップ、画面共有の中にあるなら、画面OCRツールが必要です。
Opticでコードをコピーする
Opticは、描いたボックスの中の画面上のものを何でも読み取ります。画像ファイルは自分では開かないので、先にスクリーンショットをプレビュー、ブラウザ、または任意のビューアで開いてください。
- メニューバーのOpticアイコンをクリックします。
- テキストをキャプチャを選びます。
- コードの上にボックスをドラッグします。画像に行番号があれば含めないでください。
- Command-Vでエディタに貼り付けます。
テキストの準備ができると、小さな「クリップボードにコピーしました」の表示が出ます。
コードモードをオンにする
Opticの設定にあるコードモードは、この作業のためのものです。画像内のテキストの位置に基づいて各行のインデントを保持し、言語の自動補正をオフにするので、認識が識別子を辞書にある単語に「直して」しまうことがありません。コードをコピーする間はオンにしておき、通常の文章ではオフにします。
改行はデフォルトで保持されます(保持)。コードにはこれが適しています。他のオプションの削除とスマート結合は、段落向けです。
実行する前に確認する
認識はAppleのVisionのテキスト認識を使ってMac上で行われます。鮮明でコントラストの高いテキストには強いものの、それでもOCRです。コマンドをターミナルに貼り付ける前に、画像と見比べてください。特に次の点です。
- 引用符とバッククォート
l、1、IとO、0- フラグ内のハイフンと長いダッシュ
- PythonやYAMLのインデント
文字が大きいほうがよく認識されるので、フォントが小さい場合は、ドラッグする前に画像を拡大してください。
続けて複数のスニペット
すべてのキャプチャは、メニューバーのポップオーバーにあるOpticの履歴に入り、直近20件がサムネール付きで残ります。チュートリアルが五つの手順を示している場合は、続けてキャプチャし、必要なときに履歴からそれぞれをもう一度コピーします。履歴はMac上に残ります。
Opticが向かない場面
- 画像ファイルやPDFファイルは開きません。コードが画面上に見えている必要があります。
- 一度に一つの選択範囲で動作します。スクリーンショットのフォルダや文書全体は処理しません。
- プレーンテキストをコピーします。構文の色は保持せず、プログラミング言語も判別しません。
- 画面を読み取るために、macOSの画面収録の許可が必要です。
このテーマについて詳しくは、MacでコードスニペットをOCRすると画面上のあらゆるものからテキストをコピーする方法をご覧ください。アプリを比較しているなら、Mac向け画面OCRアプリのまとめがあります。
FAQ
Macは追加のアプリなしで画像からコードをコピーできますか?
多くの場合、できます。プレビュー、写真、クイックルック、Safariのライブテキストで、画像内のテキストを選択できます。動画、画面共有、他のアプリのウインドウ内のテキストでは動作しません。画面上のそれ以外の場所にあるコードには、私のおすすめは、コードモードをオンにしたOpticです。
Opticはコードのインデントを保持しますか?
設定でコードモードをオンにすると、Opticは画像内の位置に基づいて各行のインデントを保持します。インデントが重要なPythonやYAMLでは、結果を確認してください。
Opticはインターネット接続が必要ですか?
いいえ。テキスト認識はMac上で行われ、アプリにはネットワークアクセスがありません。
貼り付けたコードに間違った文字が含まれるのはなぜですか?
OCRはlと1のような似た文字を取り違えることがあります。小さなテキストは、キャプチャする前に拡大し、コードモードを使い、結果を画像と見比べてください。