So zielen Sie mit xclip auf mehrere Auswahlen ab

11

Beim Kopieren von Text in die Zwischenablage bietet xclip mehrere Auswahlziele :

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

Gibt es eine Möglichkeit, mehrere Auswahlen zu treffen?

Ich habe die folgenden Optionen ausprobiert

  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

aber keiner von ihnen funktionierte.

Amelio Vazquez-Reina
quelle

Antworten:

16

Ich habe die folgenden Optionen ausprobiert

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

Sie waren dort wirklich nah ...
Wenn Sie -fmit dem ersten xclipBefehl verwenden, wird der Text zurück an stdout gedruckt und Sie können ihn an den zweiten xclipBefehl weiterleiten:

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

Von 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
don_crissti
quelle
Vielen Dank! Ich akzeptiere diese Lösung aus folgenden Gründen: 1) Sie informiert über eine interessante Funktion von xclip. 2) Es erlaubt mir , zu Rohr xclipBefehlen , die sehr bequem und 3) Aus irgendeinem Grunde ist, dann ist es die einzigen bisher beantworten , die für die Bindung einer Arbeitslösung in meinen Experimenten gibt copy-pipein tmux(das ist , was diese Frage aufgefordert)
Amelio Vazquez-Reina
2
Wenn Ihre Distribution xseleine Alternative dazu bietet , xclipkönnen Sie diese verwenden echo 'Hello World' | xsel -i -p && xsel -o -p | xsel -i -b. Es ist etwas anders und weniger effizient als xclipdas xselFehlen einer Filteroption. Wenn Sie jedoch nicht weiterkommen xsel, können Sie das Problem auf diese Weise lösen.
Sternenfrucht
5

Ich benutze es nicht xclip, daher gibt es möglicherweise eine Möglichkeit, dies nativ zu tun, die mir nicht bekannt ist. In jedem Fall sollte dies funktionieren, vorausgesetzt, Ihre Shell ist bash:

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

>()ist eine Form der Prozesssubstitution. bashErsetzt jeweils den Pfad zu einem Dateideskriptor, der mit der Standardeingabe des Programms in Klammern verbunden ist.

Chris Down
quelle
Vielen Dank! Wissen Sie, ob diese Syntax auch kompatibel ist zsh?
Amelio Vazquez-Reina
@ user815423426 Soweit ich weiß, ja.
Chris Down
Ich habe hier auf meinem zsh getestet und es funktioniert wie ein Zauber!
SergioAraujo