Clipboard

使用 URxvt 複製和粘貼

  • July 23, 2019

我在 debian jessie 上使用 URxvt 9.20,我正在尋找一種複制和粘貼文本的方法,就像我習慣使用 gnome-terminal 一樣(Ctrl+Insert用於複製,Shift+Insert用於粘貼)。

它可以不同的 urxvt 控制台中工作,但它不能在例如 urxvt 和 iceweasel 之間工作。

我按照archlinux上的手冊進行了嘗試,但它不起作用(即使我實際上不想使用Shift++ /值得一試)CtrlC``V

.X 資源:

! ******************
! 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
! ******************

有用於複製/粘貼到/從的內置機制PRIMARY(在使用者選擇一些數據時使用)和CLIPBOARD(在使用者選擇一些數據並明確請求將其“複製”到剪貼板時使用,例如通過呼叫應用程序的“編輯”菜單下的“複製”)。有關 X 中不同剪貼板的更多資訊

對於CLIPBOARD緩衝區,它是CTRL+META+CCTRL+ALT+C用於標準 PC 鍵盤)用於複製和CTRL+META+V( CTRL+ALT+V) 用於粘貼。

來自urxvt man的報價:

選擇:選擇和粘貼文本

文本選擇和插入/粘貼機制的行為類似於 xterm(1)。

選擇

左鍵點擊區域的開頭,拖動到區域的末尾並釋放;右鍵擴展標記區域;左鍵點兩下選擇一個單詞;左鍵三次點擊以選擇整個邏輯行(可以跨越多個螢幕行),除非被資源 Tripleclickwords 修改。

按下 Meta 鍵(或 Meta+Ctrl 鍵)(編譯:褶邊)開始選擇將創建一個矩形選擇而不是正常選擇。在這種模式下,每個選定的行在選擇中成為自己的行,尾隨空格在視覺上帶有下劃線並從選擇中刪除。

粘貼

在 urxvt 視窗中按下並釋放滑鼠中鍵會導致插入 PRIMARY 選擇(或帶有 Meta 修飾符的 CLIPBOARD)的值,就好像它已在鍵盤上鍵入一樣。

按下 Shift-Insert 會導致 PRIMARY 選擇的值也被插入。

rxvt-unicode 還提供綁定 Ctrl-Meta-c 並與 CLIPBOARD 選擇進行互動。第一個綁定導致將內部選擇的值複製到 CLIPBOARD 選擇,而第二個綁定導致插入 CLIPBOARD 選擇的值。

對於粘貼文本,在 urxvt/rxvt-unicode 中,您可以使用middle button粘貼 PRIMARY 選擇和Alt/Meta+middle button粘貼剪貼板。

對於複製,只需在終端中標記文本即可將其複製到 PRIMARY 選擇。不過,複製到剪貼板選擇需要一些工作。我將您連結的 Archlinux 頁面中的資訊與 rxvt-unicode-9.19 中包含的腳本結合起來,最終得到瞭如下腳本:https ://gist.github.com/xkr47/98224ed6b0860cb55ec0 。它允許使用Ctrl+InsertCtrl+ Shift+ `c`` 將目前選定的文本複製到剪貼板。

希望這可以幫助。

作為記錄,我也沒有執行桌面環境;使用 Sawfish 作為視窗管理器。

提示:您可以使用“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

或使用“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

引用自:https://unix.stackexchange.com/questions/212360