76

GNU Screenを使用する場合、コマンドを使用して「コピー モード」とも呼ばれるスクロールバック バッファを操作できます。Ctrl+a+[

そこで、テキストを選択してもう一度押すと、テキストをコピーバッファにコピーできます。spacespace

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

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

4

9 に答える 9

46

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

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

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

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

于 2013-04-29T19:25:36.280 に答える
13

これを行うには、より簡単で手動の少ない方法があります。screen .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. テキストがクリップボードに追加されます。

編集: pbcopy を使用せず、clipit を使用する Linux では、次のように使用できます。

bindkey -m ' ' eval 'stuff \040' 'writebuf' 'exec sh -c "/bin/cat /tmp/screen-exchange | /bin/clipit"'

于 2016-12-10T00:18:02.227 に答える
0

@kungfuspider と同様にプログラムでこれを行う方法が必要で、Windows で実行されている Ubuntu WSL で機能するようにソリューションを微調整しました。

設定:

  1. win32yank 実行可能ファイルをダウンロードし、便利な場所に配置しますwin32yank.exe(シンボリック リンクを で作成しました/usr/bin) ln -s <path to exe> /usr/bin/win32yank
  2. 以下を~/.screenrc(@kungfuspider から) に配置します。正しい場所を指すようにコマンドを変更する必要がある場合がcatありwin32yankます。

bindkey -m ' ' eval 'stuff \040' 'writebuf' 'exec sh -c "cat /tmp/screen-exchange | win32yank -i --crlf"'

  1. ~/.screenrc実行してセッションを強制終了せずにリロードしますCTRL+a : source ~/.screenrc

使い方:

  1. でコピーモードに入りますCTRL+a [
  2. vimスタイルのキー移動または矢印キーで移動
  3. を押してテキストの選択を開始しますspace
  4. 目的のテキストを強調表示し、もう一度クリックしてコピーを終了spaceします。テキストは Windows クリップボードにあるはずで、右クリックで Ubuntu に貼り付けることができます。

注: コピーを a で終了することは非常に重要です。これはspacebindkeyコマンドがマップに使用しているためです。win32yank

于 2021-05-25T17:18:34.733 に答える
-1

コピーしたい情報がほんの少しの場合は、マウスで強調表示してから、必要な場所に貼り付けます。

多くの情報を取得しようとしている場合は、画面セッションをファイルに記録してから、ファイルからコピーするか、少しクリーンアップして、操作の指示に使用できます

于 2013-04-19T19:46:57.310 に答える
-4

最後に、今日、マウスで解決策を見つけました:

Ctrlを押しながらマウスで右クリックします。コピー/貼り付けのコンテキスト メニューが表示されます。

https://michalzuber.wordpress.com/2015/01/28/gnu-screen-copy-paste-with-mouse/の一部の画面

于 2015-01-28T09:08:31.487 に答える