Як орієнтуватися на кілька виборів за допомогою 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

але жоден з них не працював.

Відповіді:


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-pipeв tmux(це те , що спонукало це питання)
Амеліо Васкес-Рейн

2
Якщо ваш дистрибутив пропонує xselальтернативу xclip, ви можете використовувати echo 'Hello World' | xsel -i -p && xsel -o -p | xsel -i -b. Він дещо інший і менш ефективний, ніж xclipчерез xselвідсутність можливості фільтра. Але якщо ви застрягли, xselто це спосіб вирішити проблему.
starfry

5

Я не використовую xclip, тому може існувати спосіб, як це зробити на самому собі, про що я не знаю. У будь-якому випадку це має працювати, якщо ваша оболонка bash:

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

>()є формою заміщення процесу. bashзамінює кожен на шлях дескриптора файлу, який підключений до стандартного вводу програми в дужках.


Дякую! Чи знаєте ви, чи сумісний і цей синтаксис zsh?
Амеліо Васкес-Рейна

@ user815423426 Наскільки я знаю, так.
Кріс Даун

Я протестував тут на моєму zsh, і це працює як шарм!
SergioAraujo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.