如何使用xclip定位多个选择


11

将文本复制到剪贴板时,xclip提供了几个选择目标:

 -selection
    specify which X selection to use, options are:
    "primary" to use XA_PRIMARY (default), 
    "secondary" for XA_SECONDARY 
    "clipboard" for XA_CLIPBOARD

有没有一种针对多个选择的方法?

我尝试了以下选项

  1. echo "Hello world" | xclip -i -selection primary -selection clipboard
  2. echo "Hello world" | xclip -i selection primary | xclip -i selection clipboard
  3. echo "Hello world" | xclip -i selection primary,clipboard

但他们都不起作用。

Answers:


16

我尝试了以下选项

echo "Hello world" | xclip -i selection primary | xclip -i selection clipboard  

您真的很靠近那里...
如果-f与第一个xclip命令一起使用,它将把文本打印回stdout,您可以将其通过管道传递给第二个xclip命令:

echo "Hello World" | xclip -i -sel p -f | xclip -i -sel c

来自man xclip

-f, -filter
            when xclip is invoked in the in mode with output level set to
            silent (the defaults), the filter option will cause xclip to print
            the text piped to standard in back to standard out unmodified

谢谢!我接受此解决方案是因为:1)它告知xclip一个有趣的功能。2)它让我管xclip的命令这是相当方便和3)对于一些奇怪的原因,它是唯一的答案至今,让我在实验工作的解决方案结合copy-pipetmux(这是什么原因促使这个问题)
阿梅里奥巴斯克斯-雷纳

2
如果您的发行版提供xsel了替代方法xclip,则可以使用echo 'Hello World' | xsel -i -p && xsel -o -p | xsel -i -bxclipxsel缺少过滤器选项相比,它略有不同且效率较低。但是,如果您坚持使用,xsel那么这是解决问题的一种方法。
starfry

5

我不使用xclip,所以可能有一种我不知道的本地方法。无论如何,假设您的shell是bash

echo "Hello world" | tee >(xclip -i -selection primary) >(xclip -i -selection clipboard) >/dev/null

>()是流程替代的一种形式。bash将每个替换为文件描述符的路径,该文件描述符在括号内连接到程序的标准输入。


谢谢!您知道该语法是否也兼容zsh吗?
阿梅利奥·瓦兹克斯·雷纳

@ user815423426据我所知,是的。
克里斯·

我已经在我的zsh上进行了测试,它的工作原理就像一个魅力!
SergioAraujo,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.