Jak kierować na wiele selekcji za pomocą xclip

11

Podczas kopiowania tekstu do schowka xclip zapewnia kilka celów wyboru:

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

Czy istnieje sposób kierowania reklam na wiele selekcji?

Wypróbowałem następujące opcje

  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

ale żaden z nich nie działał.

Amelio Vazquez-Reina
źródło

Odpowiedzi:

16

Wypróbowałem następujące opcje

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

Byłeś tam naprawdę blisko ...
Jeśli użyjesz -fpierwszego xclippolecenia, wydrukuje tekst z powrotem na standardowe wyjście i możesz przesłać go do drugiego xclippolecenia:

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

Od 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
źródło
Dzięki! Akceptuję to rozwiązanie, ponieważ: 1) Informuje o ciekawej funkcji xclip. 2) To pozwala mi rurowych xclippoleceń, które jest dość wygodne i 3) Z jakiegoś dziwnego powodu, że jest to tylko odpowiedzieć tak daleko, że daje roztwór roboczy w moich doświadczeniach na wiązanie copy-pipew tmux(to jest to, co skłoniło to pytanie)
Amelio Vazquez-Reina
2
Jeśli Twoja dystrybucja zapewnia xsel, xclipmożesz użyć alternatywy echo 'Hello World' | xsel -i -p && xsel -o -p | xsel -i -b. Jest nieco inny i mniej wydajny niż z xclippowodu xselbraku opcji filtrowania. Ale jeśli utkniesz z xseltym, jest to sposób na rozwiązanie problemu.
starfry
5

Nie używam xclip, więc może istnieć sposób na zrobienie tego natywnie, czego nie jestem świadomy. W każdym razie powinno to działać, zakładając, że twoja powłoka to bash:

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

>()jest formą substytucji procesu. bashzastępuje każdy ścieżką do deskryptora pliku, który jest podłączony do standardowego wejścia programu w nawiasach.

Chris Down
źródło
Dzięki! Czy wiesz, czy ta składnia też jest kompatybilna zsh?
Amelio Vazquez-Reina,
@ user815423426 O ile mi wiadomo, tak.
Chris Down,
Testowałem tutaj na moim Zsh i działa jak urok!
SergioAraujo