キーボードを使ってX選択を貼り付けたいです。現在これを行うには、マウスの中央ボタンを使用する必要があります。
私は中央のマウスボタンを押すのが非常に簡単になると思いましたが、そのような解決策ではマウスポインタをテキストキャレット位置に移動する必要がありました。
もっと良い方法がありますか?
答え1
一部のデフォルトのLinux設定ではShift+がInsert実行されますX-selection-paste
。指摘したように、これはX-clipboard-paste
バインディングがアプリケーションごとに他のコマンドと大きく異なります。それでも機能しない場合は、試してみるいくつかの異なるキーがあります。
Ctrl+V
Ctrl+ Shift+V
Ctrl+ Shift+Insert
ない?デスクトップ環境やウィンドウマネージャはこれを構成していない可能性があります。これは、各ツールキット(GTK、Qtなど)が1つのDEまたはWMバナーの下でも異なるデフォルトバインディングを持つ可能性があるため複雑です。一部のプログラム(例gvim
:)には、実行されるグラフィック環境と必ずしも同期化されていない内部レプリケーションレジスタもあります。結論は、プログラムがXクリップボードシステムを使用していても、Xには選択できる複数のシステムがあることです。最も基本的な2つは、選択バッファ(最後に選択した内容を常に含む(存在しない場合を除く))とコピーバッファ(通常は内容を具体的にコピーする必要がある)です。後者のシステムで明示的なコピーを作成するには、次のいずれかの方法を試してサイズを確認できます。
Ctrl+C
Shift+ Ctrl+C
Ctrl+Insert
これらのどれも魔法のように機能しない場合に取ることができる2つのアプローチがあります。
これのためのアプリがあります!™これを処理するには、さまざまなクリップボードマネージャプログラムのいずれかを使用してください。最も人気があると思います。石の岩そしてグリフィ、しかし見ることはできます。その他のオプションはこちら。これも見てください高度なクリップボードマネージャに関する質問
自分で目を覚ます。
ハッキングしたいとしましょう。
独自のコードを書いてX APIを活用することに加えて、これを行うためのハッキングツールは、Xの考えを覗くことができるいくつかの小さなコマンドラインユーティリティです。それは小さな窓だけで、全体の眺めがひどいことに注意してください。
最初のツールはですxsel
。この小さなノルムは、与えられた時間にX選択バッファ内のすべてを吐き出します。
これでプログラムに追加する必要があります。 2つのオプションがあります。 1つをxdotool
使用すると、Xorg入力システムでイベント転送をシミュレートできます。あなたはそれを使用することができますタイプxdotool type foo_bar
これはカーソルに「foo_bar」と入力するのと同じです。組み合わせると、次のような結果が得られます。
$ xdotool type $(xsel)
もう一つは、xvkbd
サブサブシステムからキーボードイベントを送信することです。 STDINでキーストロークを入力できます。組み合わせると、xsel
次のような結果が得られます。
$ xsel | xvkbd -xsendevent -file -
途方もない。それでは、このタスクを実行するためのキーバインディングをインポートします。 Gnome-2を実行している場合は、次の場所にカスタムショートカットを追加できます。システム->基本設定->キーボードショートカット。別のDEまたはWMを使用している場合、この練習のサイズは読者によって異なります。
最後に注意すべき点は、コマンドをキーボードショートカットにバインドするときに上記で使用したように、2つのコマンドをパイプするのではなく、通常は1つのコマンドしか必要としないことです。次のように、パイプコマンドを新しいシェルのコマンド文字列引数として呼び出すことでこれを実行できます。
sh -c 'xsel | xvkbd -xsendevent -file -'
sh -c 'xdotool type "$(xsel)"'
答え2
少なくともFreeBSDでは、一部のGTK 3インストールではShift+が正しく機能しないことがあります。Insert問題は次のように説明されています。
Shift-Insertはデフォルトの選択を貼り付けません。代わりにクリップボードを貼り付ける必要があります(Control-Vを使用しました)。したがって、デフォルトの選択項目を挿入するキーボード専用の方法はありません。そこにマウスをドラッグしてマウスの中央ボタンをクリックする必要があります。これにより、ターミナルとGTKの間の相互作用が不便になります。
この記事を書いている時点で利用可能な最新のバグレポートとパッチは次のとおりです。
答え3
xdotool click 2
xsel
これは直接マウスクリックをシミュレートするため、/を使用する必要はありませんxdotool type ...
。
答え4
私の20.04 Alt++ShiftでInsert中央クリックと同じように貼り付ける