Claude Media
Claude Code copyコマンドでコードブロックだけを送る

Claude Code copyコマンドでコードブロックだけを送る

Claude Codeの/copyは直前の応答をクリップボードへ送ります。コードブロックの選択、SSH越しにwキーでファイルへ書き出す使い方、200行超の表を丸ごとコピーする挙動までを扱います。

Claude Codeの/copyは直前のAI応答をクリップボードへ送るコマンドです。マウスでドラッグして選択する方法とは別に用意されていて、コードブロックが含まれる応答では個別のブロックだけを選ぶピッカーが立ち上がります。ピッカーでwキーを押すとクリップボードの代わりにファイルへ書き出せます。ローカルのクリップボードが届かないSSH接続では、このwキーが実質的な主役になります。

直前の応答をコピーする基本操作

/copyを引数なしで実行すると、直前のAI応答全体がそのままクリップボードに送られます。Nを渡すと直近から数えてN番目の応答を対象にできます。/copy 2なら2つ前の応答が対象です。会話を進めた後に「1つ前の答えをもう一度使いたい」という場面で、スクロールして探し直さずに済みます。

対象になるのはAIの応答だけです。自分が打った質問文やプロンプトは/copyの対象に含まれません。番号を数えるときも、間に挟まる自分の発言はカウントに入らず、AI応答だけを1、2、3…と遡って数える形になります。長いやり取りの途中で「さっき出た手順をもう一度貼りたい」というときは、直近のAI応答が何番目かを会話の流れから数えれば済みます。

/copy
/copy 2

コードブロックが含まれる応答は個別に選べる

応答の中にコードブロックがあると、/copyは自動でインタラクティブなピッカーを開きます。応答全体をコピーするか、個々のコードブロックだけを選ぶかをその場で選択できます。長い解説文の中に短いコマンド1行だけが埋まっているようなケースで、解説文ごとコピーせずコードだけを抜き出せるのが利点です。ターミナルでのマウスドラッグ選択でも同じことはできますが、行の折り返しや構文ハイライトの色まで拾ってしまうことがあります。ピッカー経由なら元のテキストがそのまま渡ります。

たとえば環境構築の手順を尋ねたとき、応答は前置きの説明・実行するコマンドのブロック・補足の注意点という3つのパートに分かれることがよくあります。応答全体をそのままコピーすると、解説文までエディタやチャットへ貼り付けることになり、実際に実行したいコマンドだけを毎回手作業で切り出す手間が発生します。ピッカーで対象のコードブロックだけを選べば、この切り出し作業がまるごと不要になります。応答の中にコードブロックが複数あるケースでも同様で、必要な1つだけを狙って選べます。

SSH越しではwキーでファイルに書き出す

ピッカーの状態でwキーを押すと、選択した内容はクリップボードではなくファイルへ直接書き出されます。公式ドキュメントはこの操作を「SSH経由で有用」と説明しています。理由はクリップボード転送の仕組みにあります。

マウスのドラッグ選択でコピーする経路では、ローカルセッションであればmacOSのpbcopyやLinuxのwl-copyxclip、Windows/WSLのSet-Clipboardといったネイティブのクリップボードツールが呼び出されます。/copyの書き込み先も同じ「システムクリップボード」である以上、この経路と実装を共有していると考えられます。SSH越しの接続ではこれらのツールに手が届かないため、OSC 52というターミナルエスケープシーケンスでターミナル側にクリップボード転送を依頼する形に切り替わります。OSC 52はリモート側のシェルがローカル端末のクリップボードへ書き込みを依頼する仕組みで、セキュリティ上の理由から既定でブロックしているターミナルもあり、代表例のiTerm2での対処は後述の専用セクションにまとめています。ブロックされている間は、/copyが正しく実行されていてもクリップボードには何も届きません。

wキーでのファイル書き出しはこの経路をまるごと迂回します。リモートサーバーのファイルシステムに直接書き込むだけなので、ローカル側のターミナル設定やクリップボード転送の可否に依存しません。サーバー上で生成した設定ファイルやログの断片をそのまま保存したいとき、いったんクリップボードを経由させる必要がなくなります。SSH接続そのものの認証や設定手順はClaude Code SSH接続ガイドにまとめています。

tmux・GNU screenではマウス選択コピーの経路が変わる

マウスでドラッグ選択してコピーする場合、tmux配下ではSSH越しのクリップボード転送に加えてtmux自身のペーストバッファにも書き込まれます。GNU screen配下でも長い内容の転送に対応していますが、Claude Code v2.1.219より前のバージョンでは、GNU screen上でおよそ570字を超える選択を転送するとbase64化されたテキストがそのままウィンドウに表示される不具合がありました。この不具合はv2.1.219で解消されているため、Claude Codeをv2.1.219以降に更新していれば起きません。

iTerm2でクリップボードコピーが効かないとき

ローカルのiTerm2でも、初期設定のままだと/copyがクリップボードへ書き込めないことがあります。iTerm2は既定でターミナルからのクリップボードアクセスをブロックしていて、Settings → General → Selectionの「Applications in terminal may access clipboard」を有効にする必要があります。/terminal-setupをiTerm2内で実行すると、この設定は自動でオンになります。この検出はtmux内から実行した場合でも機能します。設定変更を反映させるにはiTerm2の再起動が必要です。

公式ドキュメントが個別の手順を明記しているのはiTerm2だけです。他のターミナルエミュレータで/copyのクリップボード書き込みが反映されないときは、まずそのターミナルの設定画面で「ターミナルからのクリップボードアクセスを許可」や「OSC 52」に類する項目を探します。名称や置き場所はアプリごとに違いますが、考え方はiTerm2の場合と同じで、リモートからのクリップボード書き込み要求を許可するかどうかのスイッチです。

200行を超える表もまるごとコピーされる

Markdownの表が200行を超えると、ターミナルの表示は先頭200行だけに切り詰められ、末尾に「…N more rows not shown」という注記が出ます。これは表示上の制限で、会話に残っているデータ自体は全行分そのまま保持されています。/copyはこの表示制限を無視して、会話に存在する全行をコピーします。「ターミナルで見えている200行しか手に入らない」と誤解して手動で範囲選択し直す必要はありません。それでも読みにくい大きな表は、Claudeにファイルへ書き出すよう頼むほうが扱いやすくなります。

この200行の切り詰めはv2.1.208で導入された仕様です。それより前のバージョンでは全行をそのまま描画していたため、依存関係の一覧やログの集計のような数百行規模の表を含むセッションを/resumeで再開すると、再描画に時間がかかりセッションが固まったように見えることがありました。表示を200行に抑えつつ/copyでは全行を渡すという今の設計は、この描画負荷の問題とデータの取りこぼしを同時に解決する形になっています。

/copyと/exportの使い分け

似たコマンドに/exportがあります。/exportは会話全体をプレーンテキストとして書き出すコマンドで、ファイル名を渡すとそのまま該当ファイルへ書き込み、渡さなければクリップボードへコピーするかファイル保存するかを選ぶダイアログが開きます。/copyが直前の1応答(または指定した1つ前の応答)だけを対象にするのに対し、/exportはセッションの記録全体が対象です。1つの回答やコードブロックだけを他の場所に貼り付けたいなら/copy、セッションの全履歴を保存・共有したいなら/exportという使い分けになります。

同僚にエラーの調査結果を1件だけ共有したいときは/copyでその応答だけを渡すほうが読みやすく、逆にセッション全体をふりかえって議事録のように残したいときは/export report.txtのようにファイル名を指定して丸ごと書き出すほうが目的に合います。

マウスドラッグでの選択コピーは/copyとは別のきっかけで動きます。コマンドを打つ必要がなく、フルスクリーンレンダリング中のマウス操作としてその場で発火します。この仕組み自体の詳細はClaude CodeのTUI(フルスクリーン)とはで扱っています。Claude Code全体のコマンド体系の中で/copyがどこに位置するかは、Claude Codeスラッシュコマンド一覧からも確認できます。

まとめ

/copyは直前の応答をクリップボードへ送るコマンドで、N引数で過去の応答も指定できます。コードブロックが含まれる応答では個別選択のピッカーが開き、wキーでクリップボードの代わりにファイルへ書き出せます。SSH越しの接続やOSC 52をブロックする環境ではこのファイル書き出しが最も安定した経路です。iTerm2でクリップボードコピーが効かない場合は/terminal-setupでアクセス許可を有効にします。200行を超える表も表示の切り詰めに関係なく全行コピーされる点は、覚えておくと手動での範囲選択をせずに済みます。

会話全体ではなく1つの応答だけを他所へ渡したい場面では/copy、セッション全体をまとめて残したい場面では/exportと覚えておけば、コマンド選びで迷う場面はぐっと減ります。

この記事を共有:XはてブLinkedIn