いくつかの方法があります。言及されているいくつかの方法には、(私が思うに)tmux、screen、vim、emacs、およびシェルが含まれます。emacsもscreenもわからないので、他の3つについて説明します。
Tmux
Xの選択ではありませんが、tmuxにはコピーモードがありますprefix-[
(デフォルトでprefix
はCtrl+ Bです)。このモードで使用されるバッファはtmux専用であり、かなりの可能性を開き、適切な状況でのX選択よりも用途が広くなります。
このモードを終了するには、を押しqます。ナビゲートするには、vim
またはemacs
バインディング(デフォルト= vim)を使用してhjkl
、移動、v/V/C-v
文字/行/ブロックの選択などを行います。選択が完了したら、Enterコピーしてモードを終了します。
このバッファから貼り付けるには、を使用しますprefix-]
。
シェル
任意のインストールは、X11
デフォルトで二つのプログラムが付属しているようだxclip
とxsel
(ちょっと、それはまた、両方が付属していますかのようにstartx
してxinit
)。他の回答のほとんどはに言及してxclip
おり、xsel
その簡潔さのために私は本当に好きなので、カバーしxsel
ます。
XSEL(1回):
入力オプション
-a、-append
選択に標準入力を追加します。-iを意味します。
-f、-follow
標準入力の増加に応じて選択に追加します。-iを意味します。
-i、-input
選択に標準入力を読み込みます。
出力オプション
-o、-output
選択範囲を標準出力に書き込みます。
アクションオプション
-c、-clear
選択を解除します。すべての入力オプションをオーバーライドします。
-d、-delete
現在の選択の削除を要求します。これにより、選択がクリアされるだけでなく、選択が存在するプログラムに対して、選択されたコンテンツを削除するように要求されます。すべての入力オプションをオーバーライドします。
選択オプション
-p、-primary
PRIMARY選択を操作します(デフォルト)。
-s、-secondary
SECONDARYセレクションを操作します。
-b、-clipboard
クリップボードの選択を操作します。
そして、それはあなたが知る必要があるすべてについてです。p
(または何も)for PRIMARY
、s
for SECONDARY
、b
for CLIPBOARD
、o
for output。
例:foo
TTYからの出力をコピーして、バグレポートのウェブページに貼り付けたいとしましょう。これを行うには、TTY / Xセッションとの間でコピーするのが理想的です。では、TTYからクリップボードにアクセスするにはどうすればよいでしょうか。
この例では、Xセッションが表示されていると想定します:1
。
$ foo -v
Error: not a real TTY
details:
blah blah @ 0x0000000040abeaf4
blah blah @ 0x0000000040abeaf8
blah blah @ 0x0000000040abeafc
blah blah @ 0x0000000040abeb00
...
$ foo -v | DISPLAY=:1 xsel -b # copies it into clipboard of display :1
その後Ctrl-V
、通常どおりフォームに入力できます。
ここで、サポートサイトの誰かが、問題を修正するために実行するコマンドをくれたとしましょう。複雑で長いです。
$ DISPLAY=:1 xsel -bo
sudo foo --update --clear-cache --source-list="http://foo-software.com/repository/foo/debian/ubuntu/xenial/164914519191464/sources.txt"
$ $(DISPLAY=:1 xsel -bo)
Password for braden:
UPDATING %%%%%%%%%%%%%%%%%%%%%%% 100.00%
Clearing cache...
Fetching sources...
Reticulating splines...
Watering trees...
Climbing mountains...
Looking advanced...
Done.
$ foo
Thank you for your order. A pizza should arrive at your house in the next 20 minutes. Your total is $6.99
ピザの注文は、コマンドラインの生産的な使用のようです。
...次に進みます。
Vim
+clipboard
(これは重要です!を確認してくださいvim --version
)でコンパイルした場合、VimはX PRIMARY
およびCLIPBOARD
選択にアクセスできるはずです。2つの選択はそれぞれ*
と+
レジスタからアクセス可能であり、他のレジスタと同じように、自由に読み書きできます。例えば:
:%y+ ; copy/yank (y) everything (%) into the CLIPBOARD selection (+)
"+p ; select (") the CLIPBOARD selection (+) and paste/put it
ggVG"+y ; Alternative version of the first example
ただし、vimのコピーがXセレクションへのアクセスを直接サポートしていない場合、それは世界の終わりではありません。xsel
前のセクションで説明した方法をそのまま使用できます。
:r ! xsel -bo ; read (r) from the stdout of (!) `xsel -bo`
:w ! xsel -b ; write (w) to the stdin of (!) `xsel -b`
いくつかの主要なコンボをバインドし、あなたは良いはずです。
:%y+
vimで使用してきました。これは、「すべての行を「+」レジスタ(XPRIMARY
クリップボード)にヤンク(コピー)する」というvim-speakです。%
具体的にしたい場合は、範囲で置き換えることができます。ただし、3つの注意点があります。1.コピーする前に、テキストをファイルに保存する必要があります。これはxclip
、回答で述べられているコマンドとは対照的です。2. vimの方法がわからない場合、これは退屈な作業になる可能性があります。3.これは、vimのコンパイル時に特定の機能が有効になっている場合にのみ実行できます。GVimをインストールする場合、vimのGUIと端末インスタンスの両方でデフォルトで有効になっているはずです。