【问题标题】:how to swap clipboard content with selection upon keyboard shortcut如何使用键盘快捷键上的选择交换剪贴板内容
【发布时间】:2013-06-22 08:11:15
【问题描述】:

当按下 Ctrl-B 之类的快捷键时,我想将 linux 上的 eclipse(甚至任何程序)中当前选择的文本与剪贴板的内容进行交换。 有什么想法吗?

here 发布了关于 Visual Studio 的类似问题,但不幸的是,唯一有用的答案指向 AutoHotkey,它仅适用于 Windows,或者是否有 linux 等价物?

【问题讨论】:

    标签: linux eclipse keyboard-shortcuts clipboard autohotkey


    【解决方案1】:

    有一个名为IronAHK 的项目旨在使 AutoHotkey 跨平台。它看起来有一个非常长的开发周期,所以我不确定它是否支持最新的 AutoHotkey 所做的一切。绝对值得一看!

    以下是适用于 Windows 的代码:

    ^b::
        Old_Clip := clipboard
        Send ^x
        Send % Old_Clip 
    Return
    

    【讨论】:

    • 该链接+1。我设法安装了 IronAHK 并运行了 Hello World 示例程序,但现在我被卡住了,而且 ironahk 文档非常稀疏,而且很多东西都会产生“请求的功能没有实现。”。我根本不明白 ahk 如何与 eclipse 等不同的程序进行交互。我必须从 ahk 启动程序还是 ahk 可以捕获整个系统的键盘?
    • 又看了一遍Ir​​onAHK,好像还不够成熟。在ironahk.net/docs/developing/status 上,它说大多数方法尚未实现,包括可能对我的目的至关重要的 Send 方法。
    【解决方案2】:

    使用xvkbd找到以下解决方案:

    • 确保已安装以下软件包:xsel xvkbd
    • 保存下面的脚本并将其绑定到全局键盘快捷键,如 ^B。 (在 KDE 中,我必须先将其添加到 KDE 菜单中)

    这不是很健壮,例如当我在没有 sleep 命令的情况下对其进行测试时,ctrl 修饰键似乎被卡住了,即 A 键被解释为 ctrl-A 并且我找不到重置它的方法。否则这就是我想要的。

    #!/bin/sh
    # swap currently selected text with content of system clipboard, i.e.
    # 1. save current clipboard content in oldClip
    # 2. copy current selection into clipboard
    # 3. print oldClip so that it overwrites previous selection
    # this is supposed to work in eclipse but could work in other applications, too.
    # usage: invoke this script via a global keyboard shortcut
    
    # give user time to release keys, otherwise ctrl modifier might get stuck
    sleep 0.5
    
    # when run via shortcut stdin+stdout are redirected => xsel behaves differently.
    # therefore always specify the mode explicitly.
    oldClip=`xsel --clipboard --output`
    xsel --primary --output | xsel --clipboard --input
    
    xvkbd -text "$oldClip"
    

    【讨论】:

      【解决方案3】:

      使用xclip,可以执行这三个步骤(将>读作“替换”):

      • 主要 > 次要
      • 剪贴板 > 主要
      • 次要 > 剪贴板

      由于没有程序使用过它,我们使用 Secondary 作为临时插槽来交换剪贴板和 Primary。

      xclip -o -sel p|xclip -i -sel s
      xclip -o -sel c|xclip -i -sel p
      xclip -o -sel s|xclip -i -sel c
      

      使用chmod +x script 使脚本可执行,现在您可以将快捷方式绑定到它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-13
        • 1970-01-01
        • 1970-01-01
        • 2021-11-16
        • 1970-01-01
        • 1970-01-01
        • 2019-08-12
        相关资源
        最近更新 更多