Có một vài cách. Một số cách đã được đề cập bao gồm (tôi nghĩ) tmux, screen, vim, emacs và shell. Tôi không biết emacs hoặc màn hình, vì vậy tôi sẽ đi qua ba người kia.
Tmux
Mặc dù không phải là lựa chọn X, tmux có chế độ sao chép có thể truy cập qua prefix-[
( theo mặc định prefix
là Ctrl+ B). Bộ đệm được sử dụng cho chế độ này là riêng biệt và dành riêng cho tmux, nó mở ra khá nhiều khả năng và làm cho nó linh hoạt hơn các lựa chọn X trong các tình huống phù hợp.
Để thoát chế độ này, nhấn q; để điều hướng, sử dụng vim
hoặc emacs
ràng buộc của bạn (default = vim), do đó, hjkl
đối với chuyển động, v/V/C-v
cho lựa chọn ký tự / dòng / khối, v.v. Khi bạn có lựa chọn của mình, nhấn Enterđể sao chép và thoát chế độ.
Để dán từ bộ đệm này, sử dụng prefix-]
.
Vỏ
Bất kỳ cài đặt nào X11
dường như đi kèm với hai chương trình theo mặc định: xclip
và xsel
(giống như cách nó cũng đi kèm với cả hai startx
và xinit
). Hầu hết các câu trả lời khác đều đề cập đến xclip
, và tôi thực sự thích xsel
sự ngắn gọn của nó, vì vậy tôi sẽ trình bày xsel
.
Từ xsel (1x) :
Tùy chọn đầu vào
-a, - xuất hiện
nối đầu vào tiêu chuẩn vào lựa chọn. Ngụ ý -i .
-f, - theo dõi
nối để lựa chọn khi đầu vào tiêu chuẩn phát triển. Ngụ ý -i .
-i, - thông lượng
đọc đầu vào tiêu chuẩn vào lựa chọn.
Tùy chọn đầu ra
-o,
viết lựa chọn vào đầu ra tiêu chuẩn.
Tùy chọn hành động
-c, - rõ ràng
xóa lựa chọn. Ghi đè tất cả các tùy chọn đầu vào.
-d, - hoàn thành
Yêu cầu lựa chọn hiện tại bị xóa. Điều này không chỉ xóa lựa chọn, mà còn yêu cầu chương trình trong đó lựa chọn nằm trong đó nội dung được chọn sẽ bị xóa. Ghi đè tất cả các tùy chọn đầu vào.
Lựa chọn lựa chọn
-p, - đơn giản
hoạt động trên lựa chọn CHÍNH (mặc định).
-s, - thứ hai
hoạt động trên lựa chọn THỨ HAI.
-b, - bảng
hoạt động trên lựa chọn CLIPBOARD.
Và đó là về tất cả những gì bạn cần biết. p
(hoặc không có gì) cho PRIMARY
, s
cho SECONDARY
, b
cho CLIPBOARD
, o
cho đầu ra.
Ví dụ: giả sử tôi muốn sao chép đầu ra của foo
TTY và dán nó vào trang web để báo cáo lỗi. Để làm điều này, sẽ rất lý tưởng khi sao chép vào / từ phiên TTY / X. Vì vậy, câu hỏi trở thành làm thế nào để tôi truy cập vào bảng tạm từ TTY?
Trong ví dụ này, chúng tôi sẽ giả sử phiên X được hiển thị :1
.
$ foo -v
Error: not a real TTY
details:
blah blah @ 0x0000000040abeaf4
blah blah @ 0x0000000040abeaf8
blah blah @ 0x0000000040abeafc
blah blah @ 0x0000000040abeb00
...
$ foo -v | DISPLAY=:1 xsel -b # copies it into clipboard of display :1
Sau đó tôi có thể Ctrl-V
vào mẫu như bình thường.
Bây giờ hãy nói rằng ai đó trên trang web hỗ trợ cho tôi lệnh chạy để khắc phục sự cố. Nó phức tạp và dài.
$ DISPLAY=:1 xsel -bo
sudo foo --update --clear-cache --source-list="http://foo-software.com/repository/foo/debian/ubuntu/xenial/164914519191464/sources.txt"
$ $(DISPLAY=:1 xsel -bo)
Password for braden:
UPDATING %%%%%%%%%%%%%%%%%%%%%%% 100.00%
Clearing cache...
Fetching sources...
Reticulating splines...
Watering trees...
Climbing mountains...
Looking advanced...
Done.
$ foo
Thank you for your order. A pizza should arrive at your house in the next 20 minutes. Your total is $6.99
Đặt hàng pizza có vẻ như là một cách sử dụng hiệu quả của dòng lệnh.
... Tiếp tục.
Vim
Nếu được biên dịch với +clipboard
(Điều này rất quan trọng! Hãy kiểm tra vim --version
), Vim sẽ có quyền truy cập vào X PRIMARY
và các CLIPBOARD
lựa chọn. Hai lựa chọn có thể truy cập tương ứng từ *
và các +
thanh ghi, và có thể được ghi và đọc từ lúc rảnh rỗi giống như bất kỳ thanh ghi nào khác. Ví dụ:
:%y+ ; copy/yank (y) everything (%) into the CLIPBOARD selection (+)
"+p ; select (") the CLIPBOARD selection (+) and paste/put it
ggVG"+y ; Alternative version of the first example
Tuy nhiên, nếu bản sao vim của bạn không hỗ trợ trực tiếp quyền truy cập vào các lựa chọn X, thì đó không phải là ngày tận thế. Bạn chỉ có thể sử dụng các xsel
kỹ thuật như được mô tả trong phần cuối cùng.
:r ! xsel -bo ; read (r) from the stdout of (!) `xsel -bo`
:w ! xsel -b ; write (w) to the stdin of (!) `xsel -b`
Ràng buộc một vài combo chính và bạn sẽ tốt
:%y+
trong vim, đó là vim-speak cho "yank (sao chép) tất cả các dòng vào thanh ghi '+' (PRIMARY
bảng tạm X )". Bạn có thể thay thế%
bằng một phạm vi nếu bạn muốn được cụ thể. Nhưng có ba cảnh báo: 1. Bây giờ, bạn phải lưu bất kỳ văn bản nào vào một tệp trước khi bạn có thể sao chép nó. Điều này trái ngược vớixclip
lệnh được đề cập trong các câu trả lời. 2. Nếu bạn chưa biết cách vim, điều này có thể tẻ nhạt. 3. Bạn chỉ có thể làm điều này nếu một tính năng nhất định được bật khi biên dịch vim. Nếu bạn cài đặt GVim, nó sẽ được bật theo mặc định trong cả phiên bản GUI và thiết bị đầu cuối của vim.