キーボードショートカットを使用してデフォルトの選択項目(マウスで選択したテキストなど)から貼り付ける方法は?Shift+Insert
PRIMARYまたはCLIPBOARDから貼り付ける場合、アプリケーションによっては一貫性がありません。
背景:
Ctrl+C
選択したテキストをクリップボードにコピーし、マウス選択もメインテキストにコピーします。 CLIPBOARDで貼り付け、Ctrl+V
PRIMARYで貼り付けますmouse-middle-click
。
ターミナルエミュレータ(gnome-terminal)でCLIPBOARDから貼り付けますCtrl+Shift+V
。 (PRIMARYからmouse-middle-click
残りに貼り付けます。)
キーボードショートカットを使ってPRIMARYから貼り付けたいです。 gnome-terminalではありますが、Shift+Insert
geditとFirefoxではShift+Insert
CLIPBOARDで貼り付けることです。常にCLIPBOARDで貼り付けるショートカットキーと、常にPRIMARYで貼り付ける別のショートカットが必要です。
xmonadとFirefox 34.0を使用してUbuntu 14.04を実行しています。
答え1
おっしゃったアプリはみんなgtk+
アプリだから答えが簡単ですねなぜ...なぜならみんな gtk+
アプリケーション(一つだけ除く)、Shift+クリップボードから貼り付け - つまり、+Insertと同じです。ショートカットがハードコードされています。CtrlVgtkentry.c
(ライン2022)とgtktextview.c
(ライン1819):
gtk_binding_entry_add_signal (binding_set, GDK_KEY_Insert, GDK_SHIFT_MASK,
"paste-clipboard", 0);
にも記録されています。GTK+ 3リファレンスマニュアル下にGtkEntry
:
The “paste-clipboard” signal
void
user_function (GtkEntry *entry,
gpointer user_data)
The ::paste-clipboard signal is a keybinding signal which gets emitted
to paste the contents of the clipboard into the text view.
The default bindings for this signal are Ctrl-v and Shift-Insert.
私が知っている限り、これは他のDEとの一貫性のために行われますKDE
(Qt
QTextEdit Class
)とWindowsオペレーティングシステム1 。
唯一の例外はいgnome-terminal
。長い議論の後、開発者は(他の端末との一貫性を維持するために)gnome-terminal
+はPRIMARYで貼り付ける必要があり、Shift++はCLIPBOARDで貼り付ける必要があると判断しました(一部のショートカットをカスタマイズすることを選択できます)。InsertCtrlShiftV
についてはどのように選択項目を貼り付けるためにキーボードショートカットを使用しますか?簡単な方法はありません。
最も簡単な方法は、実行中のスクリプトにショートカットを割り当てることですxdotool click 2
(マウスの中央ボタンクリックシミュレーション)。これが機能している間(すべてまたはほとんどのDEおよびツールキットで機能する必要があります)、マウスカーソルが実際にテキスト入力ボックスの上にある場合にのみ機能し、それ以外の場合は失敗します。
別の比較的簡単な方法は、Gnomeアクセシビリティを利用することです(システムで利用可能な場合)。数字キーパッドも必要です。Universal Access
>>に移動してPointing & Clicking
有効にしますMouse Keys
。NumLock
閉じていることを確認してください。その後、テンキーを使用してカーソルを移動してクリックできます。マウスの中央クリックをシミュレートするには、(アスタリスク)を押してから*放します5(簡単な説明です)。ガイド)。このソリューションはgtk+
特定の環境で常に機能しているようです。欠点は、Gnome Accessibility
数字キーパッドが必要であることです。また、ショートカットをカスタマイズすることはできません。
興味深い解決策を思い出しましたgnome-bugzilla(バグ 643391)。 (更新2018:今質問が移動されました。ここ.) 一部のソースファイルにパッチを適用し~/.config/gtk-3.0/gtk.css
(または~/.gtkrc-2.0
2つのgtk+
アプリケーション)、設定オプションを設定する必要があります。個人的に使ったことはありませんが、反応は肯定的です。
理想的には、ソースファイルにパッチを適用してシグナルを定義し、代わりに"paste-selection"
+ShiftをInsertバインドすることができます(上記のバグレポートに添付されています)。これを行う方法のガイドとして機能できます。それにもかかわらず、これはアプリケーションにのみ影響します(私はそのような人ではないので、アプリケーションの動作を変更する方法がわかりません)。"paste-selection"
"paste-clipboard"
gtk+
KDE/Qt
Qt
1:(IBMのCUAは言うまでもありません)
答え2
申し訳ありません。評判の問題でコメントを書くことができないため、回答として投稿を残します。これは直接的な解決策ではありませんが、役に立ちました...
情報の組み合わせを使用できます。
autocutselを自動的に起動し、デフォルトオプションを使用してCLIPBOARDをCUTBUFFERと同期させます。(オプションです。)このリンクは問題に関する情報のみを提供します。
Clipman GUIを使用して複数のバッファにアクセスする(デフォルトとクリップボード)、自動同期オプションなし(双方向自動同期エラーが発生)
そのため、gtkテーマを選択してテーマCSSを変更してクリップボードにコピー(Ctrl + Insert)し、クリップボードに貼り付け(Shift + Insert)信号に必要なキーバインディングを持つようにしました。