screen からクリップボードにテキストをコピーしたい。画面でコピーアンドペーストモードにする方法は知っていますが、そのテキストをクリップボードに移動して、たとえばブラウザーに貼り付けることができます。
どうすればいいですか?ありがとう!
ほとんどのプログラムでは、テキストを選択して押します Ctrl + C コピーします。テキストを貼り付けるには、 Ctrl + V。ターミナルエミュレータプログラムで、 Ctrl + C 特別な意味があり、デフォルトでプログラムを中断(停止)します。
端末エミュレータプログラムには、他のショートカットが定義されている場合があります。たとえば、Konsole and Gnome Terminalは Ctrl + Shift + C 選択したテキストをコピーします。または、テキストを選択し、編集メニューまたはコンテキストメニューのコピーオプションを使用してコピーします。
プログラムの出力が大きい場合は、screen
のスクロールバックバッファーを有効にすることができます。これは、~/.screenrc
ファイルに次の行を追加することで実行できます。
termcapinfo xterm ti@:te@
生でダーティな実装の場合は、パッケージxsel
をインストールします。これにより、Xクリップボードとのコマンドライン対話が可能になり、~/.screenrc
にこれらの行が追加されます
bind > eval writebuf "exec sh -c 'xsel -nbi </tmp/screen-exchange'"
bind y eval "exec sh -c 'xsel -bo >/tmp/screen-exchange'"
その後、screen
を再起動します。
ここで、screen
コピー/スクロールバックモードで何かを選択し、ファイルに貼り付けバッファーを書き込むと、 C-a>、ブラウザに移動してクリップボードのコンテンツを通常どおり貼り付けることができます(たとえば、 Ctrl-V)。
逆に、ブラウザで何かをコピーします Ctrl-C、screen
に移動し、新しいコマンドでクリップボードを読み取ります C-ay、次に画面交換ファイルをペーストバッファに読み込みます C-a<、最後に好きな場所に貼り付けます C-a]。
これが機能するには、変数DISPLAY
を正しく設定する必要があり、Xサーバーにアクセスできる必要があります。これは、同じXサーバーで実行されている端末では問題ありませんが、仮想端末でscreen
を実行している場合、たとえばtty1の場合、screen
を開始する前に、X側でxhost +
を実行し、端末でexport DISPLAY=:0
または同様のものを実行する必要がある場合があります。
お分かりのように、これは単純ではなく、防弾でもありませんが、役立つと思います。
この答えは、一部には GNU画面の貼り付けバッファーとX選択の同期
端末アプリケーションでコピー操作を使用するだけです。たとえば、gnome-terminalを使用している場合は、テストを選択して、コンテキストメニュー->コピーを使用します。