Cách nhắm mục tiêu nhiều lựa chọn với xclip


11

Khi sao chép văn bản vào bảng tạm, xclip cung cấp một số mục tiêu lựa chọn:

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

Có cách nào để nhắm mục tiêu nhiều lựa chọn?

Tôi đã thử các tùy chọn sau

  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

nhưng không ai trong số họ làm việc

Câu trả lời:


16

Tôi đã thử các tùy chọn sau

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

Bạn đã thực sự ở gần đó ...
Nếu bạn sử dụng -fvới xcliplệnh đầu tiên, nó sẽ in văn bản trở lại thiết bị xuất chuẩn và bạn có thể chuyển nó sang xcliplệnh thứ hai :

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

Từ 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

Cảm ơn! Tôi chấp nhận giải pháp này vì: 1) Nó thông báo về một tính năng thú vị của xclip. 2) Nó cho phép tôi để ống xcliplệnh đó là khá thuận tiện và 3) Đối với một số lý do kỳ quặc, đó là chỉ trả lời cho đến nay mà đưa ra một giải pháp làm việc trong các thí nghiệm của tôi cho ràng buộc copy-pipetrong tmux(điều này là những gì nhắc câu hỏi này)
Amelio Vazquez-Reina

2
Nếu distro của bạn cung cấp xsel, một sự thay thế cho xclip, bạn có thể sử dụng echo 'Hello World' | xsel -i -p && xsel -o -p | xsel -i -b. Nó hơi khác và kém hiệu quả hơn xclipdo xselthiếu tùy chọn bộ lọc. Nhưng nếu bạn bị mắc kẹt xselthì đây là một cách để giải quyết vấn đề.
starfry

5

Tôi không sử dụng xclip, vì vậy có thể có một cách để làm điều này một cách tự nhiên mà tôi không biết. Trong mọi trường hợp, điều này sẽ hoạt động giả sử vỏ của bạn là bash:

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

>()là một hình thức thay thế quá trình. bashthay thế từng đường dẫn đến một bộ mô tả tệp được kết nối với đầu vào tiêu chuẩn của chương trình trong ngoặc đơn.


Cảm ơn! Bạn có biết nếu cú ​​pháp đó tương thích với zshquá?
Amelio Vazquez-Reina

@ user815423426 Theo tôi biết thì có.
Chris Xuống

Tôi đã thử nghiệm ở đây trên zsh của tôi và nó hoạt động như một sự quyến rũ!
SergioAraujo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.