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

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

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

答案1

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

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

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

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

答案2

无需修改 xterm 翻译资源即可将数据复制到 Firefox 或从 Firefox 复制数据,除非您更喜欢使用键盘来帮助完成此过程。

自2006年起xterm 有一个功能selectToClipboard可以让你在PRIMARY选择(标准)和CLIPBOARD(火狐等)。

因为有些程序确实使用主选择,有些则不使用,所以它是 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)

一个 plaincontrolC通常被分配给一个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

进一步阅读:

答案3

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

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

答案4

对我有用的(openSuSe 42.3 x86_64)是从https://www.davidsimmons.com/soft/xtermhacks/#copynpastenopatch。您还可以检查https://askubuntu.com/questions/237942/how-does-copy-paste-work-with-xterm/1300290#1300290以获得其他回应。

总长DR

添加~/.Xresources

XTerm*VT100.translations: #override <Btn1Up>: select-end(PRIMARY, CLIPBOARD, CUT_BUFFER0)
and the run xrdb -merge ~/.Xresources.

相关内容