如何在byobu中从一个分屏复制并粘贴到另一个分屏?

7

假设我在byobu中打开了两个并排的分屏。此外,这两个分屏中都有不同的文件在vim中打开。我想要在一个分屏中突出显示文本,并将其复制到另一个分屏中的单独文件中。有什么想法吗?

我在搜索这个问题时找到的所有结果都是关于使用回滚功能在byobu中复制和粘贴,但是,那似乎只能在单个分屏内使用;不能跨越多个分屏。


你为什么不直接在Vim中打开这两个文件呢? - romainl
3个回答

13

看起来我发布得太快了; 似乎已经找到了解决方案。 我按照这里找到的步骤操作:

http://linuxcommand.org/lc3_adv_termmux.php

我按照以下步骤操作:

shift-f3 - 移动到要复制的分割处

alt-pgup - 进入复制模式

space - 开始选择

通过所需文本的光标

enter - 结束选择

shift-f3 - 将焦点切换到要复制到的分割上

确保接收vim处于插入模式

alt-insert - 粘贴所选文本


我只用过tmux和screen,没有用过byobu,所以也许我会错过什么,但是我猜想这个过程的粘贴部分如果不小心就可能对Vim造成严重影响。特别是,你需要确保接收Vim处于插入模式;你可能想要在之前执行:set paste,在之后执行:set nopaste,这样你的缩进就不会被搞乱了。请查看我的答案,那里有一个更好的方法。 - echristopherson
你说得对,接收的 Vim 必须处于插入模式。感谢指出这一点,我会将其添加到答案中。 - Ross Allen

7
如果您正在使用X Window Server,与记忆大量按键相关的滚动模式相比,另一种基于鼠标的解决方法是:
  1. 放大当前窗格(Shift-F11),将此窗格置于前景。
  2. 现在,您可以使用鼠标选择相关文本,而不会被垂直分割所困扰。
  3. 取消窗格缩放(再次按下Shift-F11)
  4. 切换到其他窗格或任何您想要粘贴的位置。
  5. 中键粘贴。

这也适用于远程访问(例如ssh),但出于某种原因,我需要在选择文本时按住Shift键。 - ostergaard

2
如果你的Vim支持系统剪贴板(即如果vim --version输出显示+clipboard),你可以从第一个Vim复制到系统剪贴板,然后从中粘贴到第二个Vim。这样我们就不需要确保接收Vim处于插入模式并且已经适当地设置了paste
诀窍是使用"+寄存器。因此,在进行复制时,将您想要使用的任何yanking命令的前缀添加"+。同样,在接收Vim中使用的put命令也要加上它。
如果您在X11系统上,还可以使用"*寄存器,这是X的“PRIMARY”选择缓冲区——如果只是高亮显示文本,则文本会进入该缓冲区,并且您可以通过按下中间按钮粘贴。
请参见:help gui-selections。GUI选择支持通常需要除“vim-tiny”之外的其他Vim;在Debian和Ubuntu上,vim-gtk和vim-gnome软件包是不错的选择。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接