web-dev-qa-db-ja.com

GNUスクリーンコピーバッファーをクリップボードにコピーするには?

GNU Screenを使用する場合、scrollback bufferとも呼ばれます"copy mode"Ctrl+a+[コマンド。

spaceを押してテキストを選択し、spaceをもう一度押すと、テキストをcopy bufferにコピーできます。

このテキストをスクリーンコピーバッファからXクリップボードにコピーする方法はありますか?

私の場合、gnomeとXorgでUbuntu 12.04を使用しています。

63
Samuel G. P.

xsel または pbpaste などのCLIクリップボードツールとcatユーティリティを使用して、STDINからコンテンツを取得できます。 Linuxでxselを使用する手順は次のとおりです。

  1. 画面セッションのテキストをGNU画面のコピーバッファーにコピーします。
  2. 画面内で次のコマンドを実行します:cat | xsel -b
  3. xselがエラーを報告しなかった場合、画面のコピーバッファーをSTDINにダンプします:Ctrl+a+]
  4. EOFをcatに送信して終了します:Ctrl+d

この時点で、画面コピーバッファーの内容はクリップボードにあるはずです。

編集:すべてのXプログラムと同様に、xselはクリップボードにアクセスするためにXサーバーに連絡する方法を知る必要があります。 DISPLAY環境変数を適切に設定する必要があります。

42
bonsaiviking

これを行うには、より簡単で手作業の少ない方法があります。画面の.rcファイルに、次の行を追加します。

bindkey -m ' ' eval 'stuff \040' 'writebuf' 'exec sh -c "/usr/bin/pbcopy < /tmp/screen-exchange"'

コピー機能の使用方法:

  1. screen -c path/to/screen/config.rc
  2. Ctrl + Aを押してからEscを押して、コピーモードに入ります。
  3. テキストバッファーを上にスクロールして、コピーの開始マーカーを残したい場所を見つけ、スペースを押します。
  4. 下にスクロールして、コピーするテキストを選択します。完了したら、もう一度スペースを押します。
  5. これで、テキストがクリップボードに格納されます。
11
kungfuspider

この回答はOS Xに適用されます。

必要なテキストをGNU コピーモード を使用してスクリーンペーストバッファにコピーした後、次の手順を実行します。

  1. 任意の画面ウィンドウで、pbcopy <enter>と入力します。
  2. 次に、GNU Screen paste command (エスケープキーを変更していない限り、Ctrl-a ])を使用して、テキストを端末に貼り付けます。
  3. テキストが改行で終わらない場合は、<enter>を押して改行します。
  4. 最後に、Ctrl-dを押してpbcopyにテキストをシステムのクリップボードにプッシュさせます。

その後、Command-vまたは同等のメニューオプションを使用して、OS Xの他の場所にテキストを貼り付けることができます。

10
scottgwald

この回答は、コピーされたバッファの内容をすぐに貼り付けることが最終目標であるシナリオでのみ機能します。

これを行う最も簡単な方法は、画面を2つの領域に分割することです。これを行うには CTRL+a それから |「これはiではありません。キーボードのパイプ記号です」

ヒット CTRL+a それから TAB 2番目の地域に切り替えるには、 CTRL+a それから c 2番目の領域に新しいセッションを作成します。

Nanoからコピーしてターミナルに貼り付ける場合は、左側の領域でnanoのファイルを開き、ヒットします CTRL+a それから ESC、コピー場所の開始点までスクロールしてヒット SPACE、エンドポイントまでスクロールしてテキストを選択し、ヒット SPACE もう一度コピーをマークします。

今、あなたがしなければならないのはヒットです CTRL+a それから TAB 右側の地域に切り替えてヒットする CTRL+a それから ]

テキストはコマンドラインに書き出されます。ファイルに直接書き込む場合は、ハードコピーオプションを確認することもできます。

9
CoderX

現在サーバーに接続している場合は、sshターミナルセッションを終了します。

Mac OSでXQuartzを使用し、サーバーでxselを使用している場合。 xQuartzアプリケーションメニューで[設定]を選択して、XQuartzペーストボードの設定を更新する必要があります。

XQuartz設定:

enter image description here

リモートマシンにsshして、実行してみてください:

xsel -p <<<"THIS IS A TEST".

Cmd + vを押すと、「THIS IS A TEST」が出力されるはずです。

0
Ryan