我在 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+Insert或Ctrl+ 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)的应用程序中的+C和Ctrl+ (或其他键绑定)从剪贴板复制/粘贴。V
有一些工具可以帮助您处理选择。特别是,如果您只想将单个选择复制到无论是使用鼠标选择还是按Ctrl+ C,您可以运行自动切割机(从您或桌面环境的启动程序启动它.xinitrc
),它会检测何时将某些内容复制到其中一个选项,并自动将其复制到另一个选项。
答案4
您可以使用选择到剪贴板 perl 扩展将 urxvt 复制到主板和剪贴板。这使它们保持同步,因此您只需在 urxvt 中复制一次,它应该可以在使用其中任何一个的应用程序中工作。
URxvt.perl-ext-common: selection-to-clipboard