我希望能够使用键盘粘贴X选择。目前,我必须使用鼠标中键来执行此操作。
我认为伪造鼠标中键相当容易,但是这样的解决方案还需要将鼠标指针移动到文本插入符号的位置。
有一个更好的方法吗?
在某些默认的Linux设置中,Shift+Insert将执行X-selection-paste
。如您所述,这与X-clipboard-paste
命令明显不同,该命令的绑定通常因应用程序而异。如果这不起作用,请尝试另外几个键:
Ctrl+V
Ctrl+ Shift+V
Ctrl+ Shift+Insert
不行吗 您的桌面环境或Window Manager可能没有配置它们,而且很复杂,因为-即使在一个DE或WM的旗帜下-每个工具箱(例如GTK,Qt,Etc。)也可能具有不同的默认绑定。某些程序(例如gvim
)甚至具有自己的内部复制寄存器,这些寄存器不一定与运行它们的图形环境同步。最重要的是,即使程序确实使用X剪贴板系统,X也可以选择多个系统。最基本的两个是选择缓冲区(始终具有最后选择的内容(不执行时执行))和复制缓冲区(通常需要将它们专门复制到其中)。要将显式副本复制到后一个系统中,可以尝试以下任何一种尝试:
Ctrl+C
Shift+ Ctrl+C
Ctrl+Insert
如果这一切都不能为您神奇地工作,则有两种方法可以走。
有一个应用程序!™使用各种剪贴板管理器程序之一为您处理此问题。最流行的似乎是Parcellite和Glippy,但你可以看看这里的其他替代品。另请参阅有关高级剪贴板管理器的此问题
自己乱砍。
无需编写您自己的代码并使用X api,用于此工作的黑客工具就是几个小的命令行实用程序,它们使您可以深入了解X。 。
第一个工具是xsel
。这个小工作将在任何给定时间吐出X的选择缓冲区中的任何内容。
现在,您需要将其放入程序中。有两种选择。一种是xdotool
允许您模拟将事件发送到Xorg输入系统的方法。您可以使用它的类型方法xdotool type foo_bar
来模仿在光标处键入“ foo_bar”。结合起来,您得到的是这样的:
$ xdotool type $(xsel)
另一个是xvkbd
从较低子系统发送键盘事件的。您可以在STDIN上通过管道输入击键。与结合使用xsel
,您将获得以下信息:
$ xsel | xvkbd -xsendevent -file -
伟大的。现在,让该键绑定来运行这些东西。如果运行Gnome-2,则可以在系统->首选项->键盘快捷方式中添加自定义快捷方式。如果您使用其他DE或WM,则此长度取决于阅读器。
最后要注意的是,将命令绑定到键盘快捷键时,通常仅需要一个命令,而不是像上面使用的那样将两个命令与管道连接。您可以通过将管道命令作为命令字符串argumetn调用到新的shell来完成此操作,如下所示:
sh -c 'xsel | xvkbd -xsendevent -file -'
sh -c 'xdotool type "$(xsel)"'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句