·4分で読めます

Macでコードスニペットをocrする — チュートリアルやスクリーンショットからコードをコピー

チュートリアルやドキュメント、共有されたスクリーンショットに画像としてコードが表示されている——打ち直すと一文字ずつバグを混入させることになります。

あるブログ記事はコード例をスタイル付きの画像としてレンダリングしています。同僚がプルリクエストのコメントに自分のIDEのスクリーンショットを貼り付けます。レガシーツールのドキュメントはWikiにターミナルのスクリーンショットとしてしか存在しません。Stack Overflowの回答には、フォーマッターが元の内容を崩してしまったため、画像に埋め込まれたコードが含まれています。いずれの場合も、コードは見えて読めるのですが、それは画像であり——画像からコードを打ち直してコピーすることは、コロンだと思っていたセミコロンのデバッグに30分を費やすことになる典型的なパターンです。

コードには一文字の狂いも許されない

散文とは異なり、コードは近似を一切許容しません。アンダースコアの代わりのハイフンはインポートを壊します。一つの括弧の置き間違いは関数を無効にします。大文字が必要な箇所の小文字は変数の参照をまったく別のものに変えてしまいます。画像からコードを打ち直すとき、すべての文字が失敗の可能性を秘めており、しかも混入したバグは一見正しく見えるため気づきにくいのです。

この問題は、長いコマンド、複数行のスニペット、見慣れない構文でさらに深刻になります。10個のフラグを持つDocker runコマンド、正規表現パターン、パイプとリダイレクトを含むシェルパイプライン——これらはまさに画像として共有されがちで、正確に打ち直すことがほぼ不可能なコンテンツです。

画面上のどんな画像からでもコードを抽出する

Opticは画面から直接コードの文字を読み取ります。コードを含む画像、チュートリアルページ、スクリーンショットを開き、メニューバーからOpticを起動して、スニペットの上を選択範囲でドラッグします。インデント、特殊文字、行構造を保持したまま認識されたテキストが、そのままクリップボードに送られます。

Optic extracting code from a screenshot on Mac

ターミナルコマンド

インストールスクリプト、ビルドコマンド、デプロイパイプラインは、ドキュメントやチュートリアルでターミナルのスクリーンショットとしてよく表示されます。コマンドブロックを選択し、フラグ、パス、引数が正確であることを確信してターミナルに貼り付けましょう。

IDEのスクリーンショット

Slack、GitHubのコメント、メールなどで同僚がコードのスクリーンショットを共有した場合、コードを抽出して自分のエディタに貼り付けましょう。画像を目を細めて見る代わりに、きちんとテストしたり、変更したり、レビューしたりできます。

複数スニペットの抽出

チュートリアルには、ページ全体にわたって複数のコードブロックが表示されることがよくあります。それぞれを順番に抽出しましょう。Opticのキャプチャ履歴はすべての抽出を保存するため、チュートリアル全体を進めながら、履歴のドロップダウンから各スニペットを一つずつプロジェクトに貼り付けられます。

Mac App StoreでOpticを入手する

次の記事

Optic

Select any text on screen and copy it — images, PDFs, dialogs, anything.

Get Optic on the Mac App Store