是否有用于粘贴主要选择的标准或常规键盘快捷键?
我想选择一些文本并转到另一个应用程序进行粘贴,而不会破坏我的剪贴板内容。我宁愿将手指放在键盘上,也不愿移至鼠标,找到指针,将其放置在所需位置并单击鼠标中键。
如果没有常规的方法,或者它是特定于应用程序且不受许多人支持的,是否有解决方法可以使它在全球范围内工作?(或者至少在更多应用程序中。)
是否有用于粘贴主要选择的标准或常规键盘快捷键?
我想选择一些文本并转到另一个应用程序进行粘贴,而不会破坏我的剪贴板内容。我宁愿将手指放在键盘上,也不愿移至鼠标,找到指针,将其放置在所需位置并单击鼠标中键。
如果没有常规的方法,或者它是特定于应用程序且不受许多人支持的,是否有解决方法可以使它在全球范围内工作?(或者至少在更多应用程序中。)
Answers:
发送虚拟按键对我不起作用(请参阅评论),但是这个答案启发了我寻找类似的解决方案。发送带有的“文本”事件会xvkbd
忽略物理键盘的当前状态:
sh -c 'xsel | xvkbd -xsendevent -file - 2>/dev/null'
xvkbd -text
使用了几个反斜杠序列,因此与其逃避跳舞,不如说是-file
有效的。 xvkbd
还会输出一些有关修饰符的警告文本,但似乎与这种用法无关(但我不想在中看到它~/.xsession-errors
)。
我使用系统>首选项>键盘快捷键将其绑定到快捷方式。
请注意,您需要安装xsel和xvkbd软件包:
sudo apt-get install xsel xvkbd
sh -c 'xsel | xvkbd -file - 2>/dev/null'
工作,-xsendevent必须下手才能使其正常工作。
xsel
)。
xvkbd
。xsel
在主选择中与“éòü”一起使用时效果很好,但xvkbd
由于上述脚本而失败。(并且也失败了xvkbd -text "éòü"
,尽管这里什么也没打印出来。)
您可以结合使用程序xdotool (单击以安装)和 xsel (单击以安装)来获得此功能 。
xdotool
可以模拟输入窗口;xsel
输出PRIMARY选择的内容(默认);下面的一个壳线可以解决这个问题:
xdotool type `xsel`
要使用System-> Preferences-> Keyboard快捷方式菜单项将此键绑定到任何键,必须将其包装在Shell调用中:
sh -c 'xdotool type --clearmodifiers -- "`xsel`"'
另一个xdotool建议在Debian Jessie 8.7(2017年1月)中运行:
xdotool click --delay 0 --clearmodifiers 2
xdotool click
模拟实际点击,因此您无需点击即可粘贴到鼠标位置,就像使用xdotool type
或xvkbd一样。唯一的问题是--clearmodifiers
在模拟点击后会“按下”您使用的所有修饰符(Ctrl / Alt / Shift / Meta)。即使使用--delay 0
(而不是12ms),该命令也需要一点时间来执行。如果在结束之前释放键,则修饰符将再次被“按下”,并停留在那里,直到您再次按下并释放实际键为止。
因此,如果使用任何修改器,则必须有点“慢”(50毫秒?)来释放修改器。
您可以通过设置键盘快捷方式,将其用于文本编辑器,然后按一个键(如a
或箭头)来测试它。该字母应小写。如果发生其他情况,则表示速度太快,并且修饰符被卡住(如果使用大写字母,请按住Shift键;如果选择了所有文本,则按Ctrl;如果打开菜单,则按Alt键)。再次按下并释放您的修改器以将其重置。
如果速度太快,可以使用ilkerk的建议:
sh -c 'sleep 0.3 && xdotool type --clearmodifiers --delay 0 "`xsel`"'
然后,您必须在不到 300毫秒的时间内释放它们,并等待半秒钟以使文本出现。
同样,使用xdotool type
意味着您可以像在键入文字时一样在文本光标位置而不是鼠标指针处插入文本。您可以将其更改为click
更喜欢通常的单击中键行为。
(发布此帖子是为了使新来者不必重新拼凑在评论中散布的拼图)
我曾与该问题的解决,模拟粘贴的PRIMARY
选择,所以不是我添加了一个快捷方式,复制的PRIMARY
选择的CLIPBOARD
。用我的快捷方式后,我贴CLIPBOARD
在通常的方式,与Ctrl+V
,Ctrl+Shift+V
或Shift+Insert
,根据不同的应用。
将PRIMARY
所选内容复制到的命令CLIPBOARD
是
sh -c 'xsel --output --primary | xsel --input --cliboard'
我绑定到Ctrl+Insert
Gnome快捷方式设置下的(任意选择)System Settings -> Devices -> Keyboard
其他解决方案问题的摘要:我尝试了xsel | xvkbd ...
和xsel | xdotool ...
解决方案,但发现它们不能很好地工作,因为它们模拟了逐个字符地键入PRIMARY
选择字符,这与通过单击中键粘贴选择符不同。问题包括:大选择一次插入一个字符会产生较长的延迟;如果要撤消“粘贴”,则必须逐个字符撤消,这很慢;如果您使用的是“死键”,那么一切都会变得混乱,例如“粘贴” "e
产生ë
;在xvkdb
不能正确处理Unicode字符。
警告:此解决方案将覆盖现有CLIPBOARD
内容,但是OP要求保留现有CLIPBOARD
内容的解决方案。