web-dev-qa-db-ja.com

プログラムの「画面」からクリップボードにテキストをコピーするにはどうすればよいですか?

screen からクリップボードにテキストをコピーしたい。画面でコピーアンドペーストモードにする方法は知っていますが、そのテキストをクリップボードに移動して、たとえばブラウザーに貼り付けることができます。

どうすればいいですか?ありがとう!

11
Ramon Tayag

ほとんどのプログラムでは、テキストを選択して押します Ctrl + C コピーします。テキストを貼り付けるには、 Ctrl + V。ターミナルエミュレータプログラムで、 Ctrl + C 特別な意味があり、デフォルトでプログラムを中断(停止)します。

端末エミュレータプログラムには、他のショートカットが定義されている場合があります。たとえば、Konsole and Gnome Terminalは Ctrl + Shift + C 選択したテキストをコピーします。または、テキストを選択し、編集メニューまたはコンテキストメニューのコピーオプションを使用してコピーします。

プログラムの出力が大きい場合は、screenのスクロールバックバッファーを有効にすることができます。これは、~/.screenrcファイルに次の行を追加することで実行できます。

termcapinfo xterm ti@:te@
7
Lekensteyn

生でダーティな実装の場合は、パッケージ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-Cscreenに移動し、新しいコマンドでクリップボードを読み取ります C-ay、次に画面交換ファイルをペーストバッファに読み込みます C-a<、最後に好きな場所に貼り付けます C-a]

これが機能するには、変数DISPLAYを正しく設定する必要があり、Xサーバーにアクセスできる必要があります。これは、同じXサーバーで実行されている端末では問題ありませんが、仮想端末でscreenを実行している場合、たとえばtty1の場合、screenを開始する前に、X側でxhost +を実行し、端末でexport DISPLAY=:0または同様のものを実行する必要がある場合があります。

お分かりのように、これは単純ではなく、防弾でもありませんが、役立つと思います。

この答えは、一部には GNU画面の貼り付けバッファーとX選択の同期

9
enzotib

端末アプリケーションでコピー操作を使用するだけです。たとえば、gnome-terminalを使用している場合は、テストを選択して、コンテキストメニュー->コピーを使用します。

0
Michał Šrajer