Sao chép và dán với URxvt


27

Tôi đang sử dụng URxvt 9.20 trên debian jessie và tôi đang tìm cách sao chép và dán văn bản như tôi đã quen với thiết bị đầu cuối gnome ( Ctrl+ Insertđể sao chép, Shift+ Insertđể dán).

Nó hoạt động trong các bảng điều khiển urxvt khác nhau, mặc dù nó không hoạt động giữa ví dụ urxvt và iceweasel.

Tôi đã thử theo hướng dẫn trên archlinux , nhưng nó không hoạt động (mặc dù tôi thực sự không muốn sử dụng Shift+ Ctrl+ C/ Vnó đáng để thử).

.Xác định:

! ******************
! urxvt config
! ******************

! Disable Perl extension
! If you do not use the Perl extension features, you can improve the security
! and speed by disabling Perl extensions completely. 
URxvt.perl-ext:
URxvt.perl-ext-common:

! Font spacing
! By default the distance between characters can feel too wide. It's controlled
! by this entry: 
! URxvt.letterSpace: -1

! -- Fonts -- !
URxvt.font:xft:Monospace:pixelsize=13
URxvt.boldfont:xft:Monospace-Bold:pixelsize=13
!URxvt*font:  -xos4-terminus-medium-*-*-*-14-*-*-*-*-*-iso8859-15,xft:terminus:pixelsize:12
!URxvt*boldFont:  -xos4-terminus-bold-*-*-*-14-*-*-*-*-*-iso8859-15,xft:terminus:bold:pixelsize:12
!URxvt*italicFont:  xft:Bitstream Vera Sans Mono:italic:autohint=true:pixelsize=12
!URxvt*boldItalicFont:  xft:Bitstream Vera Sans Mono:bold:italic:autohint=true:pixelsize=12

! Disable scrollbar
!URxvt*scrollBar: false

! Scrollbar style - rxvt (default), plain (most compact), next, or xterm
URxvt.scrollstyle: plain

! Background color
!URxvt*background: black
URxvt*background: #1B1B1B

! Font color
!URxvt*foreground: white
URxvt*foreground: #00FF00

! Other colors
URxvt*color0: black
!URxvt*color1: red3
URxvt*color1: #CD0000
URxvt*color2: green3
!URxvt*color3: yellow3
URxvt*color3: #C4A000
URxvt*color4: blue2
!URxvt*color4: #3465A4
URxvt*color5: magenta3
URxvt*color6: cyan3
URxvt*color7: gray90
URxvt*color8: grey50
URxvt*color9: red
URxvt*color10: green
URxvt*color11: yellow
!URxvt*color12: blue
URxvt*color12: #3465A4
URxvt*color13: magenta
URxvt*color14: cyan
URxvt*color15: white
! ******************
! /urxvt config
! ******************

Bạn có biết bạn có thể sao chép bằng cách chọn văn bản bằng chuột và dán bằng cách nhấp vào giữa không? Nếu bạn không, như vậy là đủ?
terdon

2
Vấn đề ở đây là hai chương trình đang sử dụng các lựa chọn X-Windows khác nhau, các chương trình truyền thống sử dụng PRIMARYlựa chọn với Shift + Chèn và các chương trình mới cố gắng bắt chước các liên kết phím từ các hệ thống khác dán CLIPBOARDlựa chọn cho cùng một liên kết phím. Trong GTK +, việc dán PRIMARYchuột trở nên khó khăn hơn khi sử dụng chuột (nhấp chuột giữa, như @terdon đã nói hoặc nhấp chuột trái + phải, nếu mô phỏng nút thứ ba được bật). Nhưng, trong khi điều này giải thích tại sao các chương trình không truyền dữ liệu giữa chúng, tôi tự hỏi tại sao đề xuất wiki vòm không hoạt động.
njsg

Làm thế nào bạn thử các đề xuất từ ​​ArchWIki? Nếu bạn đang sử dụng màn hình đăng nhập đồ họa để bắt đầu X, bạn sẽ cần tải lại tài nguyên X bằng cách sử dụng xrdb(nó phải xrdb ~.Xresourceshoặc một cái gì đó tương tự). Dù bằng cách nào, bạn cũng cần phải khởi động lại urxvt. Trong một số bản phân phối, bạn có thể cần cài đặt một gói riêng với các phần mở rộng perl, nhưng điều này dường như được bao gồm trong rxvt-unicodegói cơ sở trong debian (mặc dù tôi có thể bị nhầm lẫn).
njsg

1
@terdon cảm ơn bình luận của bạn. Chọn bằng chuột và dán với nhấp chuột giữa thực sự hoạt động. Mặc dù đó không phải là điều tôi muốn đạt được, tôi muốn sử dụng Ctrl + Chèn / Shift + Chèn như tôi đã quen (thói quen và câu thần chú làm cho chúng tôi làm việc hiệu quả và nhanh chóng, tôi không sử dụng chuột thường xuyên (Tôi sử dụng i3wm).)
Thomas John

@njsg cảm ơn rất nhiều vì đã giải thích sự khác biệt chính / clipboard. Tôi đã thử tiện ích mở rộng Perl được đề cập trong ArchWiki tại "Liên kết khóa tùy chỉnh", nó không tạo ra sự khác biệt (Tôi đã nhận xét phần "Tắt tiện ích mở rộng Perl" trong .Xresource của tôi trước khi đưa nó vào sử dụng). - Có, tôi đã làm $ xrdb -merge ~/.Xresourcetrước - Có, tôi đã khởi động lại urxvt hoặc mở một cửa sổ thiết bị đầu cuối urxvt mới, có tác dụng tương tự Tôi quên đề cập đến một điểm quan trọng nhất: Tôi không cài đặt môi trường máy tính để bàn: - Tôi ' Tôi chỉ sử dụng trình quản lý cửa sổ (i3wm) - Tôi sử dụng trình quản lý đăng nhập đồ họa
Thomas John

Câu trả lời:


16

Thật không may, hệ thống cửa sổ X có một số cơ chế sao chép-dán khác nhau .

Rxvt, giống như hầu hết các ứng dụng X trường học cũ, sử dụng lựa chọn chính. Nói chung, khi bạn chọn một cái gì đó bằng chuột, nó sẽ tự động được sao chép vào lựa chọn chính và khi bạn nhấp chuột giữa để dán, sẽ dán lựa chọn chính đó.

Ctrl+ CCtrl+ V(hoặc các ràng buộc chính khác) trong các ứng dụng sử dụng bộ công cụ GUI hiện đại, như Gnome-terminal và Firefox, sao chép / dán từ bảng ghi tạm.

Có các công cụ để tạo điều kiện làm việc với các lựa chọn. Cụ thể, nếu bạn chỉ muốn có một lựa chọn duy nhất được sao chép cho dù bạn chọn bằng chuột hay nhấn Ctrl+ C, bạn có thể chạy autocutsel (khởi động từ .xinitrcchương trình khởi động của môi trường máy tính để bàn của bạn), phát hiện khi có gì đó được sao chép vào một trong các lựa chọn và tự động sao chép nó sang cái khác.


20

Để dán văn bản, trong urxvt / rxvt-unicode, bạn có thể sử dụng middle buttonđể dán lựa chọn CHÍNH và Alt/Meta+ middle buttonđể dán CLIPBOARD.

Để sao chép, chỉ cần đánh dấu văn bản trong thiết bị đầu cuối sao chép nó vào lựa chọn CHÍNH. Một số công việc là cần thiết để sao chép vào lựa chọn CLIPBOARD. Tôi đã kết hợp thông tin từ trang Archlinux mà bạn đã liên kết với các tập lệnh có trong rxvt-unicode-9.19 và kết thúc bằng một tập lệnh như thế này: https://gist.github.com/xkr47/98224ed6b0860cb55ec0 . Nó cho phép một người sử dụng Ctrl+ Inserthoặc Ctrl+ Shift+ c`để sao chép văn bản hiện được chọn vào CLIPBOARD.

Hi vọng điêu nay co ich.

Đối với hồ sơ, tôi cũng không chạy môi trường máy tính để bàn; sử dụng Sawfish làm trình quản lý cửa sổ.

Mẹo : Bạn có thể theo dõi bảng tạm trong thiết bị đầu cuối bằng chương trình "xclip":

while :; do echo -ne '\033[31;1mCLIPBOARD: ' ; xclip -o -sel c ; echo ; echo -ne '\033[32;1mPRIMARY:   ' ; xclip -o -sel p ; echo ; echo -e '\033[m--------' ; sleep 1 ; done

hoặc sử dụng chương trình "xsel":

while :; do echo -ne '\033[31;1mCLIPBOARD: ' ; xsel -b -o ; echo ; echo -ne '\033[32;1mPRIMARY:   ' ; xclip -p -o ; echo ; echo -e '\033[m--------' ; sleep 1 ; done

Chủ đề phụ: Thông tin về cách lựa chọn PRIMARY và CLIPBOARD hoạt động trong Emacs: emacswiki.org/emacs/CopyAndPaste
Jonas Berlin

Nút giữa Alt / Meta + hoạt động với tôi trong Debian
Jing

Đây là câu trả lời chính xác.
Winny

15

Có các cơ chế tích hợp để sao chép / dán vào / từ PRIMARY(được sử dụng khi người dùng chọn một số dữ liệu) và CLIPBOARD(được sử dụng khi người dùng chọn một số dữ liệu và yêu cầu rõ ràng nó sẽ được "sao chép" vào bảng tạm, chẳng hạn như bằng cách gọi "Sao chép" trong menu "Chỉnh sửa" của ứng dụng). Thông tin thêm về clipboards khác nhau trong X .

Đối với CLIPBOARDbộ đệm, nó là CTRL+META+C( CTRL+ALT+Cdành cho bàn phím PC tiêu chuẩn) để sao chép và CTRL+META+V( CTRL+ALT+V) để dán.

Báo giá từ người đàn ông urxvt :

LỰA CHỌN: LỰA CHỌN VÀ VĂN BẢN

Hành vi của lựa chọn văn bản và cơ chế chèn / dán tương tự như xterm (1).

Chọn :

Nhấp chuột trái vào đầu khu vực, kéo đến cuối khu vực và phát hành; Nhấp chuột phải để mở rộng vùng được đánh dấu; Nhấp đúp chuột trái để chọn một từ; Nhấp chuột trái để chọn toàn bộ dòng logic (có thể trải dài trên nhiều dòng màn hình), trừ khi được sửa đổi bởi bộ ba tài nguyên.

Bắt đầu lựa chọn trong khi nhấn phím Meta (hoặc phím Meta + Ctrl) (Biên dịch: diềm) sẽ tạo ra lựa chọn hình chữ nhật thay vì chọn bình thường. Trong chế độ này, mỗi hàng được chọn sẽ trở thành dòng riêng trong vùng chọn và khoảng trắng ở cuối được gạch chân trực quan và xóa khỏi vùng chọn.

Dán :

Nhấn và nhả nút chuột giữa trong cửa sổ urxvt sẽ khiến giá trị của lựa chọn CHÍNH (hoặc CLIPBOARD với công cụ sửa đổi Meta) được chèn vào như thể nó đã được gõ trên bàn phím.

Nhấn Shift-Chèn cũng khiến giá trị của lựa chọn CHÍNH được chèn vào.

rxvt-unicode cũng cung cấp các liên kết Ctrl-Meta-c và để tương tác với lựa chọn CLIPBOARD. Liên kết đầu tiên làm cho giá trị của lựa chọn nội bộ được sao chép vào lựa chọn CLIPBOARD, trong khi ràng buộc thứ hai làm cho giá trị của lựa chọn CLIPBOARD được chèn vào.


Tại sao tôi không bao giờ nghĩ rằng các giải pháp là trong trang người đàn ông? Bây giờ mọi thứ đã rõ ràng với tôi! Cảm ơn bạn!
Enrico Maria De Angelis

1
Nhân tiện, tôi đã quên mất cái nào giữa lựa chọn chính và bảng tạm được dán vào khi tôi chọn thứ gì đó trước khi nhấp chuột phải và dán. Bây giờ thì rõ rồi: trướcCHÍNH .
Enrico Maria De Angelis

12

Bạn có thể tạo bản sao urxvt sang cả Chính và Clipboard với phần mở rộng perl-select-clipboard. Điều này giữ cho chúng đồng bộ, vì vậy bạn chỉ cần sao chép một lần trong urxvt và nó sẽ hoạt động trong các ứng dụng sử dụng một trong hai.

URxvt.perl-ext-common: selection-to-clipboard

2
Tôi có thể thay đổi shorcut cho phần mở rộng này không? Tôi không thích ctrl-alt-c / v mặc định. Tôi muốn có ctrl-shift-c / v.
Trismegistos

3
@Trismegistos, có một loook ở đây
Coder
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.