Làm thế nào để sao chép văn bản nhiều trang từ thiết bị đầu cuối vào clipboard?


13

Tôi đang xem một trang man cho một phần mềm trên máy của mình và tôi cần sao chép-dán một số văn bản đó nhưng văn bản nhiều hơn một trang. Tôi biết tôi có thể hướng đầu ra vào một tệp và sử dụng phần mềm dựa trên giao diện người dùng như gedit để sao chép văn bản tôi cần. Nhưng điều này có thể được thực hiện từ thiết bị đầu cuối?

Joseph đã đề xuất một phương pháp dòng lệnh (Đối với tôi hơi phức tạp một chút, tôi vẫn chưa tốt với các biểu thức thông thường trên Linux). Nhưng tôi tự hỏi liệu có cách nào để làm như vậy trong khi tôi vẫn ở trên thiết bị đầu cuối, sử dụng chuột .

Tôi hy vọng tôi nhận được câu trả lời chung chung, tuy nhiên, tôi đang sử dụng Ubuntu.

Câu trả lời:


9

Tôi có một vài ý tưởng không hoàn hảo, nhưng có thể hữu ích.

Cách 1 - chuột.

Sử dụng thanh cuộn thiết bị đầu cuối.

Chi tiết (giả sử xterm; điều chỉnh sẽ được yêu cầu cho các thiết bị đầu cuối khác.)

  1. Kích hoạt thanh cuộn nếu nó chưa có. (Trong xterm, đó là trong menu bạn nhận được bằng Ctrl + Nút2.)
  2. Đảm bảo lesskhông chạy với -ctùy chọn (Tôi đã bật tùy chọn này trong LESSbiến môi trường của mình , nhưng nó cản trở những gì chúng ta sắp làm, vì vậy tôi phải gõ -cđể tắt.)
  3. Sử dụng bất kỳ lesslệnh nào bạn thích, cuộn lên hoặc xuống để dòng đầu tiên bạn muốn sao chép hiển thị trên màn hình.
  4. triple-Button1 dòng bắt đầu bạn chọn để chọn nó.
  5. Cuộn xuống cho đến khi dòng cuối cùng bạn muốn sao chép hiển thị trên màn hình. Bạn phải chỉ sử dụng thanh không gian hoặc các phím cuộn đơn giản khác, không phải /tìm kiếm - điểm ở đây là lessđể gửi tất cả các dòng đến thiết bị đầu cuối để chúng có thể được sao chép.
  6. Nút 3 trên dòng kết thúc đã chọn của bạn để mở rộng lựa chọn.

Khó khăn có thể: bộ đệm cuộn của bạn có thể không đủ lớn. Điều đó có thể được thay đổi xtermbằng tùy chọn saveLinestài nguyên hoặc -sldòng lệnh, nhưng tôi không biết cách nào để thay đổi nó trong một xterm đang chạy.

Phương pháp 2 - không chuột.

Sử dụng lệnh |(pipe) trong lessđể gửi văn bản tới xclip.

Chi tiết:

  1. Sử dụng bất kỳ lesslệnh nào bạn thích, cuộn lên hoặc xuống để định vị dòng cuối cùng bạn muốn sao chép ở trên cùng của màn hình. Bạn có thể bỏ qua bước này và bước tiếp theo nếu bạn muốn sao chép từ đầu đến cuối.
  2. Sử dụng lệnh m(mark) để đặt dấu ở vị trí kết thúc bạn đã chọn. Nhãn hiệu là một tính năng hữu ích và bạn nên biết chúng từ đó vi, nhưng chỉ trong trường hợp bạn không: mxđặt dấu, trong đó xcó thể là bất kỳ chữ cái nào và 'xsẽ đưa bạn trở lại đó sau.
  3. Bây giờ cuộn lên để dòng đầu tiên bạn muốn sao chép nằm ở trên cùng của màn hình.
  4. Sử dụng lệnh pipe: |xsẽ đưa ra lời nhắc để bạn nhập lệnh bên ngoài. Các xnên bức thư cùng một nhãn hiệu bạn sử dụng trong các mlệnh, hoặc $cho "tất cả các cách để kết thúc". Gõ xclipđó.

Các trường hợp đơn giản sao chép toàn bộ trang man giảm xuống g|$xclipEnter.

Cảnh báo (tức là điều khủng khiếp vừa xảy ra với tôi ): xclipsẽ được bán nền, chạy như một phần của lessnhóm quy trình. Nếu bạn cố gắng tạm dừng less, bắt đầu một công việc khác trên cùng một thiết bị đầu cuối và dán vào nó, nó sẽ không hoạt động. Sau đó, khi bạn sau đó tiền cảnh man/ lesscông việc, đột nhiên dán sẽ đi qua. Tôi nghĩ rằng đây nên được coi là một xcliplỗi ...


2
Người dùng Mac có thể sử dụng pbcopy nếu họ chưa cài đặt xclip.
Mike Hedman

3

Bộ ghép kênh đầu cuối thích tmuxhoặc screenthường có chức năng như thế này (nghĩa là lưu một phần của bộ đệm cuộn lại để tập tin hoặc chuyển nó sang một số lệnh) và dù sao thì việc sử dụng chúng thường là một ý tưởng hay, vì vậy bạn có thể muốn xem một trong số đó .


2

Như đã nêu trên Nixcraft :

  1. Nhận xclip:

    sudo apt-get install xclip 
    

    hoặc là

    yum install xclip
    

    trên hệ thống dựa trên RPM.

  2. man man | your_magic_here | xclip -selection clipboard
  3. Ctrl+ Vvới nội dung trái tim của bạn. -selection clipboardThay vào đó, bạn có thể xóa để chọn dán bằng cách nhấp chuột giữa (được gọi là lựa chọn chính).

Lưu ý rằng đó your_magic_herelà một trình giữ chỗ cho bộ lọc văn bản ( sed/ awk/ perl/ ...) chọn phần mong muốn của trang man theo trường hợp sử dụng cụ thể của bạn, mà bạn không mô tả nên tôi sợ tôi không thể cụ thể với một ví dụ


Ngoài ra xclipcòn có xsel(và những người khác). Bạn cũng có thể muốn có một cái nhìn vào cuộc thảo luận clipboard này .
peterph

Có cách nào để làm như vậy bằng cách sử dụng chuột? Vì vậy, khi chuột đến cuối trang, trang sẽ cuộn.
Muhammad Gelbana

0

Nó phụ thuộc vào chương trình thiết bị đầu cuối của bạn, nhưng hầu hết các chương trình thiết bị đầu cuối không có chức năng lưu văn bản đã chọn.

LXTerminal, uxterm, Konsole và Gnome Terminal dường như thiếu 'tính năng' này, nhưng có thể có những cái khác có cái đó. Nhìn vào cấu trúc menu của chương trình thiết bị đầu cuối của bạn và có thể có một cái gì đó như "Lưu được chọn"


0

Giả sử bạn sử dụng gnome-terminallesslàm máy nhắn tin cho manbạn có thể:

  • Chạy lesscho manvới -Xchìa khóa để vô hiệu hóa màn hình thay thế, ví dụ:LESS=-X man less

Điều này sẽ cho phép nối thêm đầu ra của manbộ đệm lịch sử trình mô phỏng đầu cuối. Xem câu trả lời này để biết thêm chi tiết /unix//a/38638/87918 .

  • Cuộn đến trang cuối cùng của văn bản bạn muốn sao chép. (Tất cả văn bản cuộn sẽ được lưu trong bộ đệm lịch sử trong khi cuộn)
  • Chọn văn bản bằng chuột ở gnome-terminalđầu từ trang trước đến đầu tiên, kéo chuột lên cạnh trên của cửa sổ. Quá trình lựa chọn văn bản chi tiết được mô tả ở đây :

Điều này không hoạt động trong Gnome Terminal. Thay vào đó, những gì bạn phải làm là bắt đầu lựa chọn bằng nút chuột trái và trong khi thực hiện, hãy kéo con trỏ chuột đến cạnh của cửa sổ (hoặc bên ngoài cửa sổ). GT sẽ cuộn mọi thứ cho bạn, mở rộng lựa chọn trong quy trình. Cuộn của GT đủ nhanh để đây là một quá trình hợp lý và thuận tiện, tốt hơn nhiều so với xterm.

  • Bây giờ bạn đã chọn văn bản (bất kỳ trang nào bạn muốn) mà bạn có thể sao chép và dán bất cứ nơi nào bạn muốn.

0

Sử dụng | (pipe) lệnh ít hơn với các dấu như đã được trả lời bởi Wumpus Q. Wumbley trong tùy chọn thứ hai của mình , nhưng chuyển hướng bằng cách sử dụng tee để nối vào một tệp hiện có cho mục đích:

|tee >> ~/helpaggregator.txt

Tôi đề nghị một tệp hiện có vì người ta thường cần tham khảo ý kiến ​​khi học các lệnh mới và một người thích giữ chúng hợp nhất. Hơn nữa, hoàn thành tab có ích.

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.