这有点难以解释,但我想要的是创建一个可以通过快捷方式激活的命令,该命令获取当前选定的文本并将其替换为其他文本。我想过使用 ctrl+c(使用 xdotool 或其他工具),访问剪贴板,执行操作,将其复制到剪贴板,然后以同样的方式使用 ctrl+v。但首先我需要保存剪贴板中复制的所有内容,然后在最后复制它,但当复制一些意外内容(例如大文件)时,它可能会导致问题。那么有没有更好的方法呢?
例如,该命令接受一个字符串,并在每个字符之间插入一个空格。因此,如果我突出显示“这个句子”并按下例如 ctrl+shift+q(或我设置为快捷键的任何键),突出显示的文本(这个句子)将被文本“thissentenc e”替换。
先谢谢了。
答案1
下面是一段可以作为开始的代码:
#!/bin/bash
# Save current textual clipboard
OLDSELECT="$(xsel --clipboard --output)"
# put selected text in keyboard
sleep 0.1s
SELECTION=$(xsel -b)
# Insert your code that does something with the selection here and save that back to SELECTION
###########
###########
#
# Paste into clipboard
echo $SELECTION | xsel -b -i
# paste snippet
xdotool key --delay 0 shift+Insert
sleep 0.4s #Firefox needs long delay: 0.2 s not enough - would paste replaced selection
echo "$OLDSELECT" | xsel --clipboard --input
xsel
首先,使用(将是一个替代工具)将当前文本选择保存到 OLDSELECT xclip
。然后,将选定的文本放入剪贴板的变量 SELECTION 中。然后您可以在此处对内容进行一些操作,即在每个字母之间插入空格。
将最终结果放回到剪贴板,然后使用粘贴xdotool
。
然后可以为生成的脚本分配一个快捷键。