如何在 vim 中从 xfce4-terminal 复制/粘贴到另一个 xfce4-terminal?

如何在 vim 中从 xfce4-terminal 复制/粘贴到另一个 xfce4-terminal?

几十年来,复制/粘贴在 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+InsertMiddle-Mouse-ButtonEdit > Paste selection将其粘贴到 Xfce4 终端中。

  • vim --version+clipboard

    选项 1:[ Shift]+Left-Mouse-Button选择从 Vim 复制,Shift+InsertMiddle-Mouse-ButtonEdit > Paste selection将其粘贴到 Xfce4 终端中。

    选项 2:拉出文本进行*注册。例如,"*Y拉动整条线。使用Shift+InsertMiddle-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+ VCtrl+ Shift+ ...来完成,V这完全取决于应用程序。

  • Xfce4-terminal 使用Shift+InsertMiddle-Mouse-ButtonEdit > Paste selection菜单项从 Primary 粘贴。它使用Ctrl+ Shift+VEdit > 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

相关内容