プライマリ選択を貼り付けるための標準または従来のキーボードショートカットはありますか?
クリップボードの内容を破壊することなく、テキストを選択して別のアプリに移動して貼り付けたいです。マウスに移動してポインタを見つけ、目的の場所に配置して、中クリックするよりも、キーボードに指を置いたままにします。
従来のものがない場合、またはアプリケーション固有で多くの人がサポートしていない場合、これをグローバルに機能させるための回避策はありますか?(または、少なくともより多くのアプリケーションで。)
プライマリ選択を貼り付けるための標準または従来のキーボードショートカットはありますか?
クリップボードの内容を破壊することなく、テキストを選択して別のアプリに移動して貼り付けたいです。マウスに移動してポインタを見つけ、目的の場所に配置して、中クリックするよりも、キーボードに指を置いたままにします。
従来のものがない場合、またはアプリケーション固有で多くの人がサポートしていない場合、これをグローバルに機能させるための回避策はありますか?(または、少なくともより多くのアプリケーションで。)
回答:
仮想キープレスを送信することは私にとってはうまくいきませんが(コメントを参照)、その答えは私に似た解決策を探す気になりました。「テキスト」イベントを送信する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
sh -c 'xsel | xvkbd -file - 2>/dev/null'
動作するように-xsendeventを使用して動作させる必要がありました。
xsel
)。
xvkbd
です。xsel
プライマリ選択の「éòü」で正常に動作しxvkbd
ますが、上記のスクリプトのように失敗します。(またxvkbd -text "éòü"
、ここでは何も出力しませんが、失敗します。)
これは、プログラムxdotool (クリックしてインストール)と xsel (クリックしてインストール)を組み合わせて使用することで取得でき ます。
xdotool
ウィンドウへの入力をシミュレートできます。xsel
PRIMARY選択の内容を出力します(デフォルト)。次のシェル1つのライナーがトリックを行います。
xdotool type `xsel`
System-> Preferences-> Keyboard shortcutsメニュー項目を使用してこれを任意のキーにバインドするには、シェル呼び出しでラップする必要があります。
sh -c 'xdotool type --clearmodifiers -- "`xsel`"'
入力はxdotool
一部のプログラムでは機能しません。xdotoolのドキュメントのメモを参照してください。
私はこの同じ質問に対する答えを探していましたが、+ がプライマリ選択を貼り付けるように働いているというこの答えを見つけました。私は私のために働いています。よりシンプル。ShiftInsert
Debian Jessie 8.7で機能する別のxdotoolの提案(2017年1月):
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`"'
その後、300ms 以内にそれらをリリースし、テキストが表示されるまで0.5秒待つ必要があります。
また、を使用xdotool type
すると、マウスポインターではなく、テキストカーソル位置に入力するようにテキストを挿入できます。click
通常のミドルクリックの動作を好む場合に変更できます。
(新規投稿者がコメントで広がったパズルのピースを再びピースする必要がないように、この投稿を作成しました)
私は解決策で問題なかった貼り付けシミュレーPRIMARY
ので代わりに、私はショートカットを追加し、選択をそのコピーPRIMARY
を選択CLIPBOARD
。私のショートカットを使用した後、私は貼り付けるCLIPBOARD
と、通常の方法でCtrl+V
、Ctrl+Shift+V
またはShift+Insert
、アプリケーションに応じて。
PRIMARY
選択範囲をコピーするコマンドCLIPBOARD
は
sh -c 'xsel --output --primary | xsel --input --cliboard'
Ctrl+Insert
Gnomeのショートカット設定で(任意に)バインドしますSystem Settings -> Devices -> Keyboard
他のソリューションとの問題の概要:私が試したxsel | xvkbd ...
とxsel | xdotool ...
ソリューションを、彼らはシミュレートするので、彼らは非常にうまく動作しませんでした入力PRIMARY
と同じではない文字によって選択文字を貼り付けるミドルクリックでそれを。問題には次のものがあります。大きな選択が一度に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秒があります。