使用鍵盤粘貼 X 選擇(不是剪貼板內容)
我希望能夠使用鍵盤粘貼 X 選擇。目前我必須使用滑鼠中鍵來執行此操作。
我認為偽造滑鼠中鍵按下相當容易,但這樣的解決方案還需要將滑鼠指針移動到文本插入符號的位置。
有一個更好的方法嗎?
在一些預設的 linux 設置中,
Shift
+Insert
將執行X-selection-paste
. 正如您所指出的,這與命令明顯不同,X-clipboard-paste
命令的綁定通常因應用程序而異。如果這在這裡不起作用,可以嘗試其他幾個鍵:
Ctrl
+V
Ctrl
+Shift
+V
Ctrl
+Shift
+Insert
不去?您的桌面環境或視窗管理器可能沒有配置它們,這很複雜,因為——即使是在一個 DE 或 WM 的旗幟下——每個工具包(例如 GTK、Qt 等)很可能有不同的預設綁定。一些程序(例如
gvim
)甚至有自己的內部複製寄存器,這些寄存器不一定與它們執行的圖形環境同步。最重要的是,即使程序確實使用 X 剪貼板系統,X 也有多個系統可供選擇。最基本的兩個是選擇緩衝區——它總是包含最後選擇的東西(當它沒有選擇時執行)——和複製緩衝區——通常需要將東西專門複製到其中。要在後一個系統中進行顯式複制,您可以嘗試以下任何一種方法:
Ctrl
+C
Shift
+Ctrl
+C
Ctrl
+Insert
如果這些都不能神奇地為您工作,那麼您可以採用兩種方法。
- *有一個應用程序!*™ 使用各種剪貼板管理器程序之一為您處理此問題。最受歡迎的似乎是Parcellite和Glippy,但您可以在此處查看其他替代方案。另請參閱有關高級剪貼板管理器的問題
- 自己破解。
所以假設你想破解它。
除了編寫自己的程式碼和利用 X api,用於這項工作的黑客工具是幾個小命令行實用程序,可以讓你進入 X 的思維。只是一個小視窗提醒你,整個視圖太可怕了.
第一個工具是
xsel
. 這個小工作人員會在任何給定時間吐出 X 的選擇緩衝區中的任何內容。現在你需要把它放到你的程序中。有兩種選擇。一種是
xdotool
允許您模擬向 Xorg 輸入系統發送事件。您可以使用它的type方法xdotool type foo_bar
來模擬在游標處鍵入“foo_bar”。結合起來,你會得到這樣的東西:$ xdotool type $(xsel)
另一種是
xvkbd
從較低的子系統發送鍵盤事件。您可以在 STDIN 上通過管道將擊鍵輸入其中。結合xsel
,你會得到這樣的東西:$ xsel | xvkbd -xsendevent -file -
偉大的。現在讓那個鍵綁定來執行這些東西。如果您執行 Gnome-2,您可以在System -> Preferences -> Keyboard shortcuts中添加自定義快捷方式。如果你使用不同的 DE 或 WM,這個 excersize 留給讀者。
最後一點是,當將命令綁定到鍵盤快捷鍵時,通常只需要一個命令,而不是像我們上面使用的那樣通過管道連接兩個命令。您可以通過將管道命令作為命令字元串 argumetn 呼叫到新的 shell 來完成此操作,如下所示:
sh -c 'xsel | xvkbd -xsendevent -file -' sh -c 'xdotool type "$(xsel)"'