使用 URxvt 复制和粘贴

使用 URxvt 复制和粘贴

我在 debian jessie 上使用 URxvt 9.20,我正在寻找一种复制和粘贴文本的方法,就像我习惯使用 gnome 终端一样(Ctrl+Insert用于复制,Shift+Insert用于粘贴)。

有用之内不同的 urxvt 控制台,它不能在 urxvt 和iceweasel 之间工作。

我按照手册尝试了架构Linux,但它不会工作(尽管我实际上不想使用Shift+ Ctrl+ C/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
! ******************

答案1

有用于复制/粘贴到/从的内置机制PRIMARY(当用户选择某些数据时使用)和CLIPBOARD(当用户选择某些数据并明确请求将其“复制”到剪贴板时使用,例如通过调用应用程序的“编辑”菜单下的“复制”)。有关 X 中不同剪贴板的更多信息

对于CLIPBOARD缓冲区,它CTRL+META+C(适用CTRL+ALT+C于标准 PC 键盘)用于复制,CTRL+META+V( CTRL+ALT+V) 用于粘贴。

引述自乌尔克斯夫特人:

选择:选择并粘贴文本

文本选择和插入/粘贴机制的行为与 xterm(1) 类似。

选择:

左键单击该区域的开头,拖动到该区域的末尾并释放;右键单击可扩展标记区域;左键双击选择一个单词;左键三次单击可选择整个逻辑行(可以跨越多个屏幕行),除非被资源三次单击词修改。

按 Meta 键(或 Meta+Ctrl 键)(编译:frills)开始选择将创建一个矩形选区而不是普通选区。在此模式下,每个选定的行都成为选择中自己的行,并且尾随空白在视觉上带有下划线并从选择中删除。

粘贴:

在 urxvt 窗口中按下并释放鼠标中键会导致插入 PRIMARY 选择(或带有 Meta 修饰符的 CLIPBOARD)的值,就像在键盘上键入一样。

按 Shift-Insert 也会插入 PRIMARY 选择的值。

rxvt-unicode 还提供绑定 Ctrl-Meta-c 并与 CLIPBOARD 选择进行交互。第一个绑定导致将内部选择的值复制到 CLIPBOARD 选择,而第二个绑定导致将 CLIPBOARD 选择的值插入。

答案2

对于粘贴文本,在 urxvt/rxvt-unicode 中,您可以使用middle button粘贴主选择和Alt/Meta+middle button来粘贴剪贴板。

对于复制,只需在终端中标记文本即可将其复制到主选择中。不过,复制到剪贴板选择还需要做一些工作。我将您链接的 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

答案3

不幸的是,X 窗口系统有几种不同的复制粘贴机制

Rxvt 与大多数老式 X 应用程序一样,使用主要选择。通常,当您用鼠标选择某些内容时,它会自动复制到主要选择,而当您单击鼠标中键进行粘贴时,则会粘贴主要选择。

Ctrl使用现代 GUI 工具包(例如 Gnome 终端和 Firefox)的应用程序中的+CCtrl+ (或其他键绑定)从剪贴板复制/粘贴。V

有一些工具可以帮助您处理选择。特别是,如果您只想将单个选择复制到无论是使用鼠标选择还是按Ctrl+ C,您可以运行自动切割机(从您或桌面环境的启动程序启动它.xinitrc),它会检测何时将某些内容复制到其中一个选项,并自动将其复制到另一个选项。

答案4

您可以使用选择到剪贴板 perl 扩展将 urxvt 复制到主板和剪贴板。这使它们保持同步,因此您只需在 urxvt 中复制一次,它应该可以在使用其中任何一个的应用程序中工作。

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

相关内容