如何通过键盘快捷键选择交换剪贴板内容

时间:2013-06-25 13:37:42

标签: linux eclipse keyboard-shortcuts clipboard autohotkey

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

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

3 个答案:

答案 0 :(得分:2)

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

以下是适用于Windows的代码:

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

答案 1 :(得分:0)

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

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

这不是很强大,例如当我在没有睡眠命令的情况下测试它时,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"

答案 2 :(得分:0)

使用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使脚本可执行,现在您可以将快捷方式绑定到脚本。