AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 7769
Accepted
Roger Pate
Roger Pate
Asked: 2010-10-17 10:39:42 +0800 CST2010-10-17 10:39:42 +0800 CST 2010-10-17 10:39:42 +0800 CST

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

  • 772

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

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

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

keyboard shortcut-keys clipboard
  • 9 9 个回答
  • 13110 Views

9 个回答

  • Voted
  1. Best Answer
    Roger Pate
    2010-10-17T13:30:50+08:002010-10-17T13:30:50+08:00

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

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

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

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

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

    sudo apt-get install xsel xvkbd
    
    • 34
  2. Anne
    2016-10-06T06:47:12+08:002016-10-06T06:47:12+08:00

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

    • 10
  3. Riccardo Murri
    2010-10-17T11:01:13+08:002010-10-17T11:01:13+08:00

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

    xdotool可以模拟输入窗口;xsel输出 PRIMARY 选择的内容(默认);以下外壳一班轮将做的伎俩:

     xdotool type `xsel`
    

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

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

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

    • 8
  4. Robert Jakob
    2013-12-14T09:18:21+08:002013-12-14T09:18:21+08:00

    调用xdotool click --clearmodifiers 2模拟单击鼠标中键。这比使用 xsel 好得多(至少对我来说)。尽管您必须在键入之前定位鼠标...

    • 4
  5. Chema
    2017-03-09T12:43:48+08:002017-03-09T12:43:48+08:00

    另一个 xdotool 建议,在 Debian Jessie 8.7(2017 年 1 月)中工作:

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

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

    所以有了这个,你必须有点“慢”(50ms?)来释放你的修饰符,如果你正在使用任何修饰符。

    您可以通过设置您的键盘快捷键,在文本编辑器中使用它,然后按一个键(如a或箭头)来测试这一点。该字母应以小写形式出现。如果发生其他事情,您的速度太快并且修改器被卡住(如果它是大写的,则为 Shift,如果您选择了所有文本,则为 Ctrl,如果您打开了菜单,则为 Alt)。再次按下并释放修改器以重置它们。

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

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

    然后你必须在不到300 毫秒的时间内释放它们,并等待半秒钟让文本出现。

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

    (做这个帖子是为了让新人不必再拼凑评论中散布的拼图)

    • 3
  6. ntc2
    2018-12-24T13:36:57+08:002018-12-24T13:36:57+08:00

    我对模拟粘贴PRIMARY选择的解决方案有问题,所以我添加了一个快捷方式,将选择复制到PRIMARYCLIPBOARD. 使用我的快捷方式后,我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 ...解决方案,但发现它们的效果不是很好,因为它们模拟逐字符键入选择的内容,这与单击鼠标中键粘贴不一样。问题包括:一次插入一个字符的大选择时延迟很长;如果要撤消“粘贴”,则必须逐字符撤消它,这很慢;如果您使用“死键”,那么一切都会搞砸,例如“粘贴”会产生;不能正确处理 unicode 字符。PRIMARY"eëxvkdb

    警告:此解决方案会覆盖现有CLIPBOARD内容,但 OP 要求提供保留现有CLIPBOARD内容的解决方案。

    • 1
  7. ilkerk
    2016-02-12T09:04:27+08:002016-02-12T09:04:27+08:00

    我有同样的问题,互联网搜索对我没有多大帮助。正如 OP 所提到的,模拟 click 2 的问题很烦人。

    上述建议xdotool和 xsel 的问题是,当xdotool开始“键入”时,您仍在按另一个键。这并不总是导致任何输出。例如,如果您将它绑定到“插入”键,则xdotool在您的手指按下“插入”键时发送键,这不会导致任何结果。

    以下是一种解决方法,将其绑定到按键:

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

    它并不完美,但可以工作。现在你有 0.3 秒的时间来完成你的按键选择(和按键)。

    • 0
  8. Asif Imtial
    2020-05-16T20:57:42+08:002020-05-16T20:57:42+08:00

    你也可以使用xclip

    使用以下命令复制primaryto的内容:clipboard

    sh -c 'xclip -o -selection primary | xclip -selection clipboard'
    

    您可以将此命令绑定到您喜欢的任何键盘快捷键。如果您使用的是 Gnome 桌面环境,您可以通过转到Settings > Keyboard Shortcuts或搜索keyboard shortcuts其他 DE 来完成。

    Ctrl-v现在,您可以通过或以通常的方式粘贴内容Ctrl-Shift-v。

    但是,这将覆盖剪贴板以前的内容!

    • 0
  9. Daniel Böhmer
    2022-03-08T01:24:46+08:002022-03-08T01:24:46+08:00

    在 Debian Bullseye 上的 KDE 中,默认组合键似乎是Ctrl++ 。ShiftInsert

    • 0

相关问题

  • 如何在 Ubuntu 中眨眼间显示桌面?[关闭]

  • 输入语言切换键只接受 shift-alt 而不是 alt-shift [关闭]

  • 如何在键盘上映射未映射的键?[关闭]

  • 如何重置我的键盘布局?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve