用于粘贴主要选择的键盘快捷键

用于粘贴主要选择的键盘快捷键

是否有用于粘贴主要选择的标准或常规键盘快捷键?

我想选择一些文本并转到另一个应用进行粘贴没有删除剪贴板内容。我宁愿把手指放在键盘上,也不愿移到鼠标上,找到指针,将其放置在我想要的位置,然后单击鼠标中键。

如果没有什么常规方法,或者它是特定于应用程序的并且不受许多人支持,那么是否有解决方法可以使其在全球范围内发挥作用?(或者至少在更多应用程序中。)

答案1

发送虚拟按键对我来说不起作用(请参阅评论),但这个答案启发了我去寻找类似的解决方案。发送带有“文本”事件会xvkbd忽略物理键盘的当前状态:

sh -c 'xsel | xvkbd -xsendevent -file - 2>/dev/null'

xvkbd -text使用几个反斜杠序列,因此无需转义,即可正常-file工作。添加-delay 0以在“按键”之间无延迟地输入文本。xvkbd还会输出一些有关修饰符的警告文本,但它似乎与此用途无关(但我不想在中看到它~/.xsession-errors)。

我使用以下方法将其绑定到快捷方式系统 > 偏好设置 > 键盘快捷键

请注意,您需要安装 xsel 和 xvkbd 包:

sudo apt-get install xsel xvkbd

答案2

我正在寻找这个问题的答案,然后我发现这个答案这表明Shift+Insert正在粘贴主要选择。对我来说很管用。更简单。

答案3

你可以通过结合使用这些程序来实现这一点 工具点击安装) 和 響鳴点击安装)。

xdotool可以模拟在窗口中打字;xsel输出 PRIMARY 选择的内容(默认);下面的 shell 单行程序可以达到这个目的:

 xdotool type `xsel`

要将其绑定到任意键,请使用系统->偏好设置->键盘快捷键菜单项需要将其包装在 shell 调用中:

 sh -c 'xdotool type --clearmodifiers -- "`xsel`"'

xdotool在某些程序中无法输入;请参阅xdotool 文档

答案4

另一个 xdotool 建议,适用于 Debian Jessie 8.7(2017 年 1 月):

xdotool click --delay 0 --clearmodifiers 2
  • 与 xvkbd 不同,xdotool 可以处理多字节字符串(pe UTF-8)。
  • xdotool click模拟实际的点击,因此您不必自己单击来粘贴到鼠标位置,就像使用xdotool type或 xvkbd 一样。

唯一的问题是,--clearmodifiers在模拟点击后,将“按下”您使用的任何修饰键(Ctrl/Alt/Shift/Meta)。即使--delay 0(而不是 12 毫秒),该命令也需要一点时间来执行。如果您在结束前释放按键,您的修饰键将再次被“按下”,并卡在那里,直到您再次按下并释放实际按键。

因此,如果您使用任何修饰符,那么您必须“慢一点”(50 毫秒?)才能释放修饰符。

您可以通过设置键盘快捷键、将其用于文本编辑器,然后按下某个键(如a或箭头)来测试这一点。字母应以小写形式显示。如果出现其他情况,则表示您操作太快,修饰键卡住了(例如,如果是大写,则为 Shift;如果选择了所有文本,则为 Ctrl;如果打开了菜单,则为 Alt)。再次按下并释放修饰键可重置它们。

如果你太快,你可以使用 ilkerk 的建议:

sh -c 'sleep 0.3 && xdotool type --clearmodifiers --delay 0  "`xsel`"'

然后你必须把它们释放到较少的少于 300 毫秒,并等待半秒钟让文本出现。

此外,使用xdotool type意味着您可以像在打字一样在文本光标位置而不是鼠标指针处插入文本。click如果您喜欢通常的中键单击行为,您可以将其更改为。

(发布此帖子是为了让新来者不必再次拼凑评论中散布的拼图碎片)

相关内容