I\'d like to exchange the currently selected text in eclipse (or even any program) on linux with the content of the clipboard when pressing a shortcut like Ctrl-B. Any ideas
There is a project called IronAHK which aims to make AutoHotkey cross-platform. It looks to have an extremely long development cycle, so I am not certain it supports everything that the latest AutoHotkey does. It is definitely worth a look!
Below is the code that would work in Windows:
^b::
Old_Clip := clipboard
Send ^x
Send % Old_Clip
Return
With xclip
, these three steps can be performed (read >
as "replaces"):
Since no program ever uses it, we use Secondary as a temporary slot to swap Clipboard with 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
Make the script executable with chmod +x script
and now you can bind a shortcut to it.
found following solution using xvkbd
:
this is not very robust, e.g. when I tested it without the sleep command, the ctrl modifier key seemed to be stuck, i.e. the A key was interpreted as ctrl-A and I found no way to reset it. Otherwise this does what I want.
#!/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"