几十年来,复制/粘贴在 GNU/Linux 中的所有情况下都无法正常工作,而且这个问题仍然没有得到解决。
我发现自己有两个 xfce4-terminal 实例,终端 A 和终端 B。
终端 A 位于 bash 命令提示符处。终端 B 位于 vim 实例中,正在编辑某个任意文件。
我尝试通过用鼠标光标突出显示 B 中的文本来将文本从 B 复制/粘贴到 A 中。文本成功突出显示。我使用航站楼 A 中的中间按钮。
预期成绩:
应将终端 B 中的文本复制到终端 A 中。
实际结果:
剪辑缓冲区中的前一个条目被转储到终端 A 中。
我的“修复”:
退出vim并使用较少或类似的命令行工具,无需在vim中即可复制文本。然后它就会按预期工作。
问题:
有更好的修复方法吗?
答案1
概括
vim --version
说-clipboard
:
[ Shift
]+Left-Mouse-Button
选择从 Vim 复制,Shift
+Insert
或Middle-Mouse-Button
或Edit > Paste selection
将其粘贴到 Xfce4 终端中。
vim --version
说+clipboard
:选项 1:[
Shift
]+Left-Mouse-Button
选择从 Vim 复制,Shift
+Insert
或Middle-Mouse-Button
或Edit > Paste selection
将其粘贴到 Xfce4 终端中。选项 2:拉出文本进行
*
注册。例如,"*Y
拉动整条线。使用Shift
+Insert
或Middle-Mouse-Button
或将其粘贴到 Xfce4-terminal 中Edit > Paste selection
。选项 3:提取文本进行
+
注册。例如,"+Y
拉动整条线。使用Ctrl+Shift+V
或将其粘贴到 Xfce4-terminal 中Edit > Paste
。
Shift
如果您的 Vim 没有启用鼠标,括号中的[ ] 是可选的。上述描述也适用于除选项 3 和菜单项 ( Edit > ...
) 之外的其他终端。
解释
有两个主要的“剪贴板”:主要和剪贴板。只要选择文本,就会简单地设置 Primary 的内容。它还需要一项操作才能到达剪贴板,通常是键盘快捷键(最常见的是Ctrl+C
)或菜单项。从 Primary 粘贴是通过Middle-Mouse-Button
(许多终端也使用Shift
+ Insert
)完成的。从剪贴板粘贴可以使用Ctrl
+ V
、Ctrl
+ Shift
+ ...来完成,V
这完全取决于应用程序。
Xfce4-terminal 使用
Shift
+Insert
或Middle-Mouse-Button
或Edit > Paste selection
菜单项从 Primary 粘贴。它使用Ctrl
+Shift
+V
或Edit > Paste
.从剪贴板粘贴。它通过鼠标选择复制到主,并通过Ctrl
+Shift
+C
或菜单项复制到剪贴板。极简终端模拟器(例如 Xterm)默认情况下仅启用 Primary(但它可以支持剪贴板)。
如果
+clipboard
启用,Vim 将注册*
到 Primary 并注册+
到剪贴板关联。
如果 Vim 在终端仿真器中运行并且 Vim 的鼠标支持打开 ( :set mouse=a
),则鼠标选择文本到可视模式。如果您希望终端能够选择为主,则需要Shift
在使用鼠标选择时按 。从:help mouse
:
注意:在终端中启用鼠标时,如果可以访问 X 服务器,复制/粘贴将使用“* 寄存器。通过按住 Shift 键仍然可以使用鼠标按钮的 xterm 处理。
这是支持鼠标的文本终端工具的常见模式。例如,nano
在不支持鼠标的情况下启动,在有鼠标支持的情况下启动nano --mouse
。在第一种情况下,你可以简单地用鼠标选择文本,但在后一种情况下,你也需要像使用 Vim 一样按下 Shift 键。对于 Midnight Commander,mc --nomouse
和 也会发生同样的情况mc
。所有这些实用程序都在其手册中提到了这一点。
您还可能会发现这个 Freedesktop 规范内容丰富。
答案2
您可以在 vim 模式下使用终端。如果您在终端控制台中键入,set -o vi
终端键盘布局现在会切换到 vim 模式。
另一种方式:复制/剪切鼠标剪贴板粘贴到终端中
CTRL+SHIFT+V
答案3
例如,在某些终端应用程序中,less
您无法直接复制文本。但是您可以复制文本,如果您复制时按住空格键。这是否回答你的问题?
答案4
在 VIM 中你可以这样做:
按v进入可视模式。使用键盘箭头移动光标以选择要复制的内容。
然后按"+ ++ yy(双引号 + 加号 + YY)...是的,“y”字母两次
完成后,在另一个终端中以常规形式复制:Ctrl++ShiftV
寄存器还有许多其他不错的选择。请参见:https://vim.fandom.com/wiki/Copy,_cut_and_paste