如何从xterm(Awesome,Debian,VirtualBox)复制文本?


15

我在VirtualBox实例中运行了最小的Debian安装,手动安装了X11和Awesome窗口管理器(尚无任何自定义配置),还安装了VirtualBox附加功能(并在设置中启用了共享剪贴板)。但是,从xterm终端复制粘贴文本似乎仍然不起作用:CTRL+ C作为信号发送到终端,并且Shift+ Insert插入我选择的文本(这可能意味着它以某种方式被复制到了某些缓冲区),但仍无法从主机操作系统使用。

Answers:


20

X11使用两个缓冲区:PRIMARYCLIPBOARD。要复制/粘贴到CLIPBOARD缓冲区中,通常可以使用CTRL-CCTRL-V。您可以PRIMARY通过选择文本插入缓冲区,然后按鼠标中键将其粘贴。

如果要使用CLIPBOARD缓冲区,请将其放入~/.Xresources文件中,并使用Ctrl+ Shift+ CCtrl+ Shift+ 在xterm中VCLIPBOARD缓冲区复制/粘贴到缓冲区:

xterm*VT100.Translations: #override \
                 Ctrl Shift <Key>V:    insert-selection(CLIPBOARD) \n\
                 Ctrl Shift <Key>C:    copy-selection(CLIPBOARD)

xrdb ~/.Xresources将其放入文件后,需要运行。


2
使用xrdb ~/.Xresources将破坏性地覆盖您的默认配置。改为使用xrdb -merge ~/.Xresources
xaedes

14

除非您希望使用键盘来帮助完成此过程,否则无需修改xterm转换资源即可将数据复制到Firefox,或从Firefox复制数据。

自2006年以来, xterm具有一项功能selectToClipboard,可让您在PRIMARY选择(标准)和CLIPBOARD(Firefox等)之间切换。

由于有些程序确实使用了主要选择,有些则没有,因此它是xterm(controlmiddle-mouse)中的菜单项:

在菜单项中显示selectToClipboard

适应GNOME应用程序等控制字符的建议,您可以使用键盘,同时使菜单在两种选择之间切换:

xterm*VT100.Translations: #override \
                 Ctrl Shift <Key>V:    insert-selection(SELECT) \n\
                 Ctrl Shift <Key>C:    copy-selection(SELECT)

尽管添加shiftInsert可能更接近原始意图:

xterm*VT100.Translations: #override \
                 Shift <Key>Insert:    insert-selection(SELECT) \n\
                 Ctrl Shift <Key>V:    insert-selection(SELECT) \n\
                 Ctrl Shift <Key>C:    copy-selection(SELECT)

controlC通常将平原分配给信号INTR

$ stty -a
speed 38400 baud; rows 40; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

进一步阅读:


4
  1. 打开xterm并突出显示要复制的文本。
  2. 转到要粘贴的应用程序,然后将鼠标光标悬停在要粘贴的字段上。
  3. 单击鼠标上的滚动按钮。(在笔记本电脑上,可以通过同时单击左键和右键单击来完成)

当您突出显示文本时,它将文本复制到您的主缓冲区。请记住,如果在粘贴之前突出显示任何其他文本,则该文本将替换主缓冲区中的先前内容。


1
请仔细阅读问题。“转到您要粘贴到的应用程序” –这表明您没有注意到我需要将其粘贴到主机OS中。
Max Yankov

抱歉,鼠标上没有第三个按钮。在这里使用轨迹球
holms 18-2-23

2

事实证明,我没有考虑X11有两个缓冲区的事实:primary剪贴板。我将xterm中的文本复制到主缓冲区中,而我需要在剪贴板缓冲区中使用它。

我能够通过安装parcellite软件包,启动它并将其配置为同步两个缓冲区来解决该问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.