Bạn có thể sao chép dòng trên cùng được hiển thị trong less
lựa chọn X11 CLIPBOARD bằng cách nhập bằng less
:
|.head -n1|xclip -sel c<Enter><Enter>
Điều đó dẫn bộ đệm ít hơn từ dòng trên cùng đến .
nhãn hiệu (do đó có hiệu lực toàn bộ nội dung màn hình) cho head -n1|xclip -sel c
lệnh (để lưu trữ dòng đầu tiên trong số đó trong lựa chọn CLIPBOARD)
Bạn có thể định cấu hình trình giả lập thiết bị đầu cuối của mình để dán chuỗi đó khi nhấn phím đã cho hoặc liên kết chuỗi đó với tổ hợp phím hoặc khóa trong less
các ràng buộc khóa. Ví dụ, để liên kết nó trên Alt+C:
printf '%s\n' '#commands' '\ec pipe .head -n1|xclip -sel c\n' | lesskey -
Tuy nhiên, lưu ý, bạn sẽ nhấn Entersau đó để xác nhận lời nhắc "| xong (nhấn RETURN)".
Với xterm
, bạn cũng có thể xác định chế độ lựa chọn mới chẳng hạn ở đây khi giữ Ctrl+Altkhi mở rộng vùng chọn cho biết less
dòng nào sẽ sao chép từ màn hình hiện tại của nó:
Viết một lesspaste
kịch bản như:
#! /bin/sh -
start=${1%%";"*}
end=${1#*" "}
end=${end%";"*}
head -n "$((end))" | tail -n "$((end - start + 1))" | xclip -sel c
Và xác định các bảng dịch xterm (ở đây trên dòng lệnh để thử nghiệm, nhưng bạn sẽ muốn thêm nó vào tệp tài nguyên X):
xterm -xrm 'XTerm.VT100.translations: #override \
Meta Ctrl<Btn1Down>: select-start()\n\
Meta Ctrl<Btn1Motion>: select-extend()\n\
Meta Ctrl<Btn1Up>: select-end(SECONDARY) \
insert-formatted("|.lesspaste '\''%P %p'\''\n\n", SECONDARY)'
Sau đó, bạn sẽ đánh dấu các dòng để dán bằng cách kéo chuột bằng cách Ctrl+Altgiữ và khi phát hành Nút 1, xterm sẽ nói ít hơn để chuyển màn hình hiện tại sang lesspaste
tập lệnh của chúng tôi với tọa độ bắt đầu và kết thúc được truyền dưới dạng một đối số ( y1;x1 y2;x2
).
(lưu ý rằng nó có thể không hoạt động đúng nếu less
được gọi -s
để nén các dòng trống (như thông thường khi được gọi bởi man
), vì đầu vào được cung cấp lesspaste
sẽ không bị nén các dòng trống (do đó, việc bù số dòng có thể sai)) .