我在 VirtualBox 实例中运行了最小的 Debian 安装,手动安装了 X11 和 Awesome 窗口管理器(尚未任何自定义配置)并安装了 VirtualBox 添加项(并在设置中启用了共享剪贴板)。但是,从 xterm 终端复制粘贴文本似乎仍然不起作用:CTRL+C作为信号发送到终端,并且Shift+Insert插入我选择的文本(这可能意味着它以某种方式复制到某个缓冲区),但它仍然无法从主机操作系统中获得。
答案1
X11 使用两个缓冲区:PRIMARY
和CLIPBOARD
。要复制/粘贴到CLIPBOARD
缓冲区,您通常可以使用CTRL-C和CTRL-V。您可以PRIMARY
通过选择文本插入到缓冲区,然后按鼠标中键从中粘贴。
如果您想使用缓冲区CLIPBOARD
,请将其放入~/.Xresources
文件中,并使用Ctrl+ Shift+C和Ctrl+ 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) 中的一个菜单项:
适应 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
进一步阅读:
- 为什么我无法从其他程序中选择/粘贴?(xterm 常见问题解答)
答案3
- 打开
xterm
并突出显示要复制的文本。 - 转到您要粘贴的应用程序,并将鼠标光标悬停在要粘贴的字段上。
- 单击鼠标上的滚动按钮。 (在笔记本电脑上,可以通过同时按左键和右键单击来完成)
当您突出显示文本时,它会将文本复制到主缓冲区。请记住,如果您在粘贴之前突出显示任何其他文本,则该文本将替换主缓冲区中以前的内容。
答案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.