Answers:
在某些默认的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)"'
Shift-Insert
有任何实际用途,但实际上并没有(在Ubuntu中)。我发现的唯一“一致性(+/-)”是X- GTK应用程序中的选择可以Shift-Inserted到中gnome-terminal
,但是对于这些相同应用程序的任何其他交叉粘贴组合来说,它都是碰碰运气的...我使用的KDE应用程序很少(包括Konsole),完全交叉粘贴...。甚至在GTK应用程序中,单击中心也可能有效,但Shift + Insert可能不起作用(对于同一应用程序)...所以我使用鼠标:(
xdotool click 2
。
显然,Shift+ Insert在某些GTK 3安装上可能无法正常工作,至少在FreeBSD上是如此。问题描述为:
Shift-Insert不会粘贴主要选择。而是必须粘贴剪贴板(已使用Control-V的剪贴板)。因此,没有插入唯一选择的仅键盘方式。必须将鼠标拖到那里并单击鼠标中键。这使得终端和GTK之间的交互不舒服。
提供了最新的(截至撰写本文时)错误报告和补丁:
我正在使用Ubuntu 12,在从gterm(和任何其他应用程序)中的xterm粘贴文本时遇到问题。另外,我使用的笔记本电脑像许多人一样没有鼠标中键(对于没有中间按钮的Linux用户,实际上没有剪贴板的怜悯,并且没有:right-click + left_click不能替代它)。
虽然我认为“ xsel | xvkbd -xsendevent -file-”方法非常酷。我发现最简单的解决方案是运行预安装的“ gnome-terminal”而不是“ xterminal”。“ gnome-terminal”支持右键单击“复制到剪贴板”命令。然后,我可以将“编辑菜单->粘贴”输入gedit或使用shift-insert。Ubuntu 12预先安装了“ gnome-terminal”。其他debian / gnome安装程序应该能够通过以下方式安装它:
sudo apt-get install gnome-terminal
在Ubuntu中,通过单击启动器栏顶部的“ Dash Home”按钮将其添加到左侧启动器。在出现的搜索框中,键入terminal。您可以将“终端”图标拖到启动器栏。