2

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

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

4

3 回答 3

2

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

以下是适用于 Windows 的代码:

^b::
    Old_Clip := clipboard
    Send ^x
    Send % Old_Clip 
Return
于 2013-06-25T15:02:25.433 回答
1

使用以下解决方案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"
于 2013-08-09T16:57:16.947 回答
0

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

  • 小学 > 中学
  • 剪贴板 > 主要
  • 次要 > 剪贴板

由于没有任何程序使用过它,我们使用 Secondary 作为临时插槽来将 Clipboard 与 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现在您可以将快捷方式绑定到它。

于 2020-08-23T15:43:14.110 回答