プライマリ選択を貼り付けるための標準または従来のキーボードショートカットはありますか?
テキストを選択し、別のアプリに移動して貼り付けますwithoutクリップボードの内容を破棄します。マウスに移動してポインタを見つけ、目的の場所に配置して、中クリックするよりも、キーボードに指を置いたままにします。
従来のものがない場合、またはアプリケーション固有で多くの人がサポートしていない場合、これをグローバルに機能させるための回避策はありますか? (または、少なくともより多くのアプリケーションで。)
仮想キープレスの送信は私には機能しません( comments を参照)。しかし、その答えは私に似たソリューションを探すように促しました。 xvkbd
で「テキスト」イベントを送信すると、物理キーボードの現在の状態が無視されます。
sh -c 'xsel | xvkbd -xsendevent -file - 2>/dev/null'
xvkbd -text
はいくつかのバックスラッシュシーケンスを使用するため、エスケープして踊るのではなく、-file
が機能します。 xvkbd
も修飾子に関する警告テキストを出力しますが、この使用法とは無関係のようです(しかし、~/.xsession-errors
で見たくありませんでした)。
System> Preferences> Keyboard Shortcutsを使用して、これをショートカットにバインドしました。
Xselおよびxvkbdパッケージをインストールする必要があることに注意してください。
Sudo apt-get install xsel xvkbd
これは、プログラム xdotool ( クリックしてインストール )と xsel ( クリックしてインストール =)。
xdotool
は、ウィンドウへの入力をシミュレートできます。 xsel
は、PRIMARY選択の内容を出力します(デフォルト)。次のシェル1ライナーがトリックを行います。
xdotool type `xsel`
System-> Preferences-> Keyboard shortcutsメニュー項目を使用してこれを任意のキーにバインドするには、シェル呼び出しでラップする必要があります。
sh -c 'xdotool type --clearmodifiers -- "`xsel`"'
xdotool
と入力しても、一部のプログラムでは機能しません。 xdotool documentation のメモを参照してください。
私はこのまったく同じ質問に対する答えを探していましたが、私は この答え と言いました Shift+Insert プライマリ選択を貼り付けようとしています。私は私のために働いています。よりシンプル。
xdotool click --clearmodifiers 2
を呼び出すと、マウスの中ボタンのクリックをシミュレートします。これは(少なくとも私にとっては)xselを使用するよりもずっとうまく機能します。入力する前にマウスを配置する必要がありますが...
Debian Jessie 8.7(2017年1月)で機能するxdotoolの別の提案:
xdotool click --delay 0 --clearmodifiers 2
xdotool click
は実際のクリックをシミュレートするため、xdotool type
またはxvkbdを使用した場合のように、マウスの位置に貼り付けるために自分でクリックする必要はありません。唯一の問題は、--clearmodifiers
がクリックをシミュレートした後に使用する修飾子(Ctrl/Alt/Shift/Meta)を「押し戻す」ことです。 --delay 0
(12msではなく)を使用しても、コマンドの実行には少し時間がかかります。終了する前にキーを離すと、モディファイアは再び「押され」、実際のキーをもう一度押して離すまでそこに留まります。
そのため、モディファイヤを使用している場合は、モディファイアをリリースするために少し「遅い」(50ms?).
これをテストするには、キーボードショートカットを設定し、テキストエディターで使用してから、キー(a
や矢印など)を押します。文字は小文字で表示されます。他に何かが起こると、速すぎて修飾子がスタックします(たとえば、大文字の場合はShift、すべてのテキストを選択した場合はCtrl、メニューを開いた場合はAlt)。修飾子をもう一度押して放し、リセットします。
速すぎる場合は、ilkerkの提案を使用できます。
sh -c 'sleep 0.3 && xdotool type --clearmodifiers --delay 0 "`xsel`"'
次に、それらをless 300ms未満で解放し、テキストが表示されるまで0.5秒待つ必要があります。
また、xdotool type
を使用すると、マウスポインタではなく、テキストカーソルの位置に入力するようにテキストを挿入できます。通常のミドルクリック動作を希望する場合は、click
に変更できます。
(新規投稿者が再びコメントで広がったパズルのピースをつなぎ合わせる必要がないように、この投稿を作成しました)
貼り付けをシミュレートするソリューションに問題がありましたPRIMARY
選択を、代わりにcopiesPRIMARY
選択をCLIPBOARD
にコピーします。ショートカットを使用した後、アプリケーションに応じて、Ctrl+V
、Ctrl+Shift+V
、またはShift+Insert
を使用して、通常の方法でCLIPBOARD
を貼り付けます。
PRIMARY
選択をCLIPBOARD
にコピーするコマンドは
sh -c 'xsel --output --primary | xsel --input --cliboard'
Ctrl+Insert
の下のGnomeショートカット設定でSystem Settings -> Devices -> Keyboard
(任意選択)にバインドします
他のソリューションの問題の概要:xsel | xvkbd ...
およびxsel | xdotool ...
のソリューションを試しましたが、それらがシミュレートされているためうまく機能しないことがわかりましたtyping文字ごとにPRIMARY
選択文字。これはpastingとは異なります。クリック。問題には次のものがあります。大きな選択が一度に1文字ずつ挿入されるまでに長い遅延があります。 「貼り付け」を元に戻すには、文字ごとに元に戻す必要がありますが、遅いです。 「デッドキー」を使用している場合、すべてが台無しになります。 「貼り付け」"e
はë
を生成します。 xvkdb
はUnicode文字を正しく処理しません。
警告:このソリューションは既存のCLIPBOARD
コンテンツを上書きしますが、OPは既存のCLIPBOARD
コンテンツを保持するソリューションを要求しました。
私は同じ問題を抱えていましたが、インターネット検索はあまり役に立ちませんでした。 OPが述べたように、クリック2をシミュレートする問題は迷惑です。
上記の提案されたxdotool
とxselの問題は、xdotool
が「タイピング」を開始するとき、まだ別のキーを押していることです。それは、必ずしも出力の結果とは限りません。たとえば、それを「挿入」キーにバインドすると、xdotool
はキーを送信し、指で「挿入」キーを押しても何も起こりません。
以下は、キープレスにバインドするための回避策です。
sh -c 'sleep 0.3 && xdotool type --clearmodifiers --delay 0 "`xsel`"'
完璧ではありませんが機能しています。これで、キーを押す(およびキーを押す)の選択を完了する0.3秒があります。