Xclipマニュアルには、プライマリ(XA_PRIMARY)、セカンダリ(XA_SECONDARY)、およびクリップボード(XA_CLIPBOARD)という名前の3つの保存場所があると記載されています。ブラウザからテキストをコピー(Ctrl + c)し、ターミナルで上記の3つの場所の内容を調べました。
xclip -s primary -o
xclip -s secondary -o
xclip -s clipboard -o
3つすべてに同じテキストが含まれています。
今タイプすると
date | xclip -selection XA_PRIMARY
XA_PRIMARYのみに日付テキストを含める必要があります。しかし、実際には他の2つ、つまりXA_SECONDARYとXA_CLIPBOARDにも同じテキスト(日付情報)が含まれています。 3つは同じですか?もしそうなら、ポイントは何ですか?
さらに困惑したのは、Ctrl + Shift + v(まだターミナルモードのまま)が、ブラウザからコピーした元のテキストを貼り付けていることです。これは、シェル自身のクリップボードも動作していることを示唆しています。
3つの場所が同時に異なる値を保持できることと、それらが通常のクリップボードとどのように関連するかを示す例はありますか?
残念ながら、xclip
は無効なコマンドラインオプションを暗黙的に無視します。
-s
と-selection
は-silent
で始まるため、-s
オプションはありません。少なくとも-se
を使用する必要があります。
xclip
は-s
オプションを無視するだけなので、コマンド
xclip -s primary -o
xclip -s secondary -o
xclip -s clipboard -o
xclip -s asdfghj -o
すべてデフォルトの選択(primary
)を使用します。
選択名には最初の文字のみが実際に使用され、s
またはc
以外の場合はデフォルトが使用されます。
date | xclip -selection XA_PRIMARY
date | xclip -selection XA_SECONDARY
date | xclip -selection XA_CLIPBOARD
すべてプライマリ選択を使用します。
のようなものを使う
date | xclip -se p # write to primary selection
xclip -se c -o # read from clipboard
私は不足している点、つまり「なぜ3つの異なるクリップボードを使用するのか」に対処します。
xclip
とxsel
は、デフォルトでXA_PRIMARYで動作します。これは、ほとんどのXアプリがこのように動作するためです:ifhighlightaテキスト、それはselectedであるため、PRIMARY SELECTIONバッファーに配置されます。
PRIMARYを貼り付ける場合は、マウスの中央ボタンを使用するか、 Shift+Insert。または、その内容をCLIPBOARDに転送して貼り付けますxclip -o | xclip -se c
。
優れた読書: https://specifications.freedesktop.org/clipboards-spec/clipboards-latest.txt