Làm thế nào để sao chép văn bản từ dòng lệnh vào clipboard mà không cần sử dụng chuột?


10

Tôi đang cố gắng tìm ra cách sao chép văn bản hiện tại trong một dòng lệnh vào bảng tạm mà KHÔNG chạm vào chuột. Nói cách khác, tôi chỉ cần chọn văn bản bằng bàn phím. Tôi tìm thấy một giải pháp nửa vời có thể dẫn đến giải pháp đầy đủ:

Ctrl+a - di chuyển đến đầu dòng.

Ctrl+k - cắt toàn bộ dòng.

Ctrl+y - kéo lại văn bản cắt lại.

Ngoài ra, tôi cũng có thể sử dụng Ctrl+uđể thực hiện 2 bước đầu tiên.

Điều này tất nhiên hoạt động, nhưng tôi đang cố gắng tìm ra chính xác văn bản cắt được lưu ở đâu. Có cách nào để truy cập nó mà không cần sử dụng Ctrl+y? Tôi biết xclipvà thậm chí tôi còn sử dụng nó để chuyển văn bản thẳng vào bảng tạm, vì vậy tôi đã suy nghĩ về việc sắp xếp dữ liệu được lưu Ctrl+kvào xclip, nhưng không chắc chắn cách thực hiện.

Phương pháp tôi có được cho đến nay là viết một tập lệnh sử dụng xdotoolđể thêm echovào đầu dòng và | zxcđến cuối dòng, sau đó nhấn enter ( zxclà một bí danh tùy chỉnh mà về cơ bản là ống dẫn xclip). Điều này cũng hoạt động, nhưng nó không phải là một giải pháp thực sự "sạch".

Tôi đang sử dụng Cshell nếu điều đó làm cho bất kỳ sự khác biệt.

EDIT: Tôi không muốn sử dụng screennhư một giải pháp, quên đề cập đến điều đó.

Cảm ơn!


Không liên quan, nhưng cũng nên biết: Shift-Ins sẽ dán lựa chọn trong xterm, nếu bạn không chỉ muốn cắt văn bản mà còn dán.
dirkt

Câu trả lời:


7

Nếu sử dụng xtermhoặc một công cụ phái sinh, bạn có thể thiết lập các ràng buộc chính để bắt đầu và kết thúc lựa chọn văn bản, và lưu nó dưới dạng lựa chọn chính X11 hoặc bộ cắt. Xem man xterm. Ví dụ: thêm vào ~/.Xdefaults:

XTerm*VT100.Translations: #override\n\
    <Key>KP_1: select-cursor-start() \
            select-cursor-end(PRIMARY, CUT_BUFFER0)\n\
    <Key>KP_2: start-cursor-extend() \
            select-cursor-end(PRIMARY, CUT_BUFFER0)\n

Bạn chỉ có thể có một XTerm*VT100.Translationsmục. Cập nhật máy chủ X11 với nội dung tệp mới với xrdb -merge ~/.Xdefaults. Bắt đầu một mới xterm.

Bây giờ khi bạn có một số đầu vào tại dấu nhắc lệnh, gõ 1trên bàn phím số sẽ bắt đầu chọn văn bản ở vị trí con trỏ văn bản hiện tại, giống như nút 1 xuống trên chuột. Di chuyển con trỏ bằng các phím mũi tên sau đó nhấn 2trên bàn phím số và văn bản can thiệp được tô sáng và sao chép vào lựa chọn chính và cutbuffer0. Rõ ràng các khóa và hành động phù hợp hơn có thể được chọn. Bạn có thể dán tương tự các lựa chọn với các ràng buộc như thế nào insert-selection(PRIMARY).


Điều đó thật tuyệt! Tôi không có ý tưởng bạn có thể làm điều này. RẤT hữu ích! Có thể sử dụng nó trong konsole?
Sancho Pancho

2
Tôi đã xem nhanh hướng dẫn sử dụng của konsole nhưng nó không đề cập đến loại kiểm soát này. Không có khả năng bạn sẽ tìm thấy điều này trong hầu hết các trình giả lập thiết bị đầu cuối vì họ muốn cung cấp các cài đặt đơn giản hơn để quản lý thông qua các menu và hộp thoại.
meuh

Tài translationsnguyên là tính năng X Toolkit được ám chỉ ở đây và không có đối tác trong các bộ công cụ khác. Tuy nhiên, bạn có thể chuyển đổi giữa các bộ bản dịch bằng keymaptính năng (lưu ý nhận xét về "Bạn chỉ có thể có một bản dịch").
Thomas Dickey

Cảm ơn tất cả các ý kiến. Tuy nhiên, vẫn chưa tìm hiểu về bảng tạm ctrl-k / ctrl-y, có ai biết làm thế nào để truy cập vào đó hoặc nơi thực sự lưu văn bản cắt?
Sancho Pancho

@SanchoPancho Tùy thuộc vào csh của bạn, nó thực hiện một vòng khử nội bộ giúp giữ văn bản cắt và cung cấp lại cho nó với các ràng buộc yank và yank-pop. Tôi không nghĩ rằng bạn có bất kỳ quyền truy cập khác vào vòng này. xem người đàn ông csh .
meuh
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.