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

46 keyboard shortcut-keys clipboard

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

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

如果没有任何传统的东西,或者它是特定于应用程序的并且不受许多人的支持,是否有一种解决方法可以使其在全球范围内工作?(或者至少在更多应用中。)

小智 34

发送虚拟按键对我不起作用(见评论),但这个答案激励我寻找类似的解决方案。发送“文本”事件并xvkbd忽略物理键盘的当前状态:

sh -c 'xsel | xvkbd -xsendevent -file - 2>/dev/null'
Run Code Online (Sandbox Code Playgroud)

xvkbd -text使用一些反斜杠序列,因此与其逃避,不如-file工作。添加-delay 0以在“击键”之间无延迟地输入文本。xvkbd还输出一些关于修饰符的警告文本,但它似乎与此用途无关(但我不想在 中看到它~/.xsession-errors)。

我使用System > Preferences > Keyboard Shortcuts将此绑定到快捷方式

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

sudo apt-get install xsel xvkbd
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,`sh -c 'xsel | xvkbd -file - 2>/dev/null'` 有效,-xsendevent 必须退出才能使其正常工作。 (9认同)
  • 神圣的香蕉!有用!棒极了。Ubuntu 应该默认设置它。 (3认同)
  • 除了两个问题外,这非常有效。(1) 我使用了一个下拉终端 (Guake),我已将其设置为在失去焦点时隐藏。运行此脚本会暂时从终端移除焦点,使其隐藏。(2) 对UTF-8字符双字节字符处理不好。例如,如果我选择“éòü”,则使用脚本打印“éòü”。 (2认同)
  • 看起来第二个错误在 `xvkbd` 中。`xsel` 在主要选择中与 "éòü" 配合良好,但 `xvkbd` 因上述脚本而失败。(并且也因`xvkbd -text "éòü"` 失败,尽管在这里它什么也没打印。) (2认同)

Ric*_*rri 7

您可以通过组合使用程序xdotool单击安装)和 xsel单击安装)来获得此功能 。

xdotool可以模拟在窗口中输入;xsel输出 PRIMARY 选择的内容(默认);下面的外壳单衬可以解决问题:

 xdotool type `xsel`
Run Code Online (Sandbox Code Playgroud)

要使用System->Preferences->Keyboard shortcuts菜单项将此绑定到任何键,必须将其包装在 shell 调用中:

 sh -c 'xdotool type --clearmodifiers -- "`xsel`"'
Run Code Online (Sandbox Code Playgroud)

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

  • 需要 --clearmodifiers 选项,否则在释放键盘快捷键和 xdotool 执行之间存在竞争条件。10.04 的 repos 中的 xdotool 没有为此选项更新,我不得不[下载](http://www.semicomplete.com/projects/xdotool/) 并自己构建它。然而,--clearmodifiers 似乎奇怪地影响了修饰符,我不知道最终如何让 xdotool 为我的键盘快捷键工作(尽管它非常适合虚拟输入文本)。 (2认同)

小智 7

我正在寻找这个问题的答案,我发现这个答案Shift+Insert正在努力粘贴主要选择。我为我工作。更简单。

  • 在 Ubuntu 上默认 [Shift+Insert 像 Ctrl+v 一样粘贴常规剪贴板](https://unix.stackexchange.com/a/123240/209677),而不是主要选择。您使用的是哪个发行版? (4认同)