Come scegliere come target più selezioni con xclip


11

Quando si copia il testo negli appunti, xclip fornisce diversi target di selezione:

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

C'è un modo per scegliere come target più selezioni?

Ho provato le seguenti opzioni

  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

ma nessuno di loro ha funzionato.

Risposte:


16

Ho provato le seguenti opzioni

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

Eri davvero lì vicino ...
Se lo usi -fcon il primo xclipcomando, il testo verrà stampato su stdout e potrai reindirizzarlo al secondo xclipcomando:

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

Da 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

Grazie! Accetto questa soluzione perché: 1) Informa su un'interessante funzionalità di xclip. 2) mi permette di tubi xclipcomandi che è molto conveniente e 3) Per qualche strana ragione, è la risposta unica finora che fornisce una soluzione di lavoro nei miei esperimenti per il legame copy-pipea tmux(questo è ciò che ha spinto a questa domanda)
Amelio Vazquez-Reina

2
Se la tua distribuzione fornisce xsel, un'alternativa a xclip, è possibile utilizzare echo 'Hello World' | xsel -i -p && xsel -o -p | xsel -i -b. È leggermente diverso e meno efficiente rispetto xclipalla xselmancanza di un'opzione di filtro. Ma se sei bloccato con xselquesto, questo è un modo per risolvere il problema.
Starfry,

5

Non lo uso xclip, quindi potrebbe esserci un modo per farlo in modo nativo di cui non sono a conoscenza. In ogni caso, questo dovrebbe funzionare supponendo che la tua shell sia bash:

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

>()è una forma di sostituzione del processo. bashsostituisce ciascuno con il percorso di un descrittore di file che è collegato all'input standard del programma tra parentesi.


Grazie! Sai se anche quella sintassi è compatibile con zsh?
Amelio Vazquez-Reina

@ user815423426 Per quanto ne so, sì.
Chris Down,

Ho provato qui sul mio zsh e funziona come un fascino!
SergioAraujo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.