如果原始文件未关闭,vim粘贴byobu将失败

如果原始文件未关闭,vim粘贴byobu将失败,vim,copy,clipboard,byobu,Vim,Copy,Clipboard,Byobu,我用putty连接服务器(centos 7),并在byobu中运行vim。 现在,我在byobu中有两个窗口和两个文件,在window-1中有a.py,在window-2中有b.py。 我试图将一些文本从a.py复制到b.py,但遇到了一些问题。 如果我按照以下步骤操作,它工作正常: 步骤1:在window-1中,打开a.py,按yy,然后按:wq退出 步骤2:在window-2中,打开b.py,按p 但是如果我首先保持a.py和b.py的打开状态,或者在yy之后退出a.py,则粘贴失败。 看起

我用putty连接服务器(centos 7),并在byobu中运行vim。
现在,我在byobu中有两个窗口和两个文件,在window-1中有a.py,在window-2中有b.py。
我试图将一些文本从a.py复制到b.py,但遇到了一些问题。
如果我按照以下步骤操作,它工作正常:

步骤1:在window-1中,打开a.py,按
yy
,然后按
:wq

退出 步骤2:在window-2中,打开b.py,按
p

但是如果我首先保持a.py和b.py的打开状态,或者在
yy
之后退出a.py,则粘贴失败。 看起来很奇怪,你错过什么了吗


我在
.vimrc
中设置了
剪贴板=unnamedplus
,在
vim--version
中设置了
+clipboard
,我的vim版本是8.2.1438。

由于[viminfo]文件,您可以在vim会话之间粘贴。默认情况下,Vim将非空寄存器(包括默认寄存器)的内容存储到viminfo文件中。这就是为什么当您在启动Vim之后立即放置(使用
p
)时,您会得到上次退出Vim之前最后一次拖动(使用
yy
)的内容

viminfo文件在Vim退出之前写入,并在Vim初始化期间读取。这就是为什么如果您在退出第一个实例之前启动第二个Vim实例,这将无法自动工作。然后,第二个实例将过早地读取viminfo文件(或者第一个实例写入viminfo文件太迟),从而允许您在实例之间放置被拖动的文本

您可以使用
:wviminfo
wv
命令显式写入viminfo文件。您可以使用
:rviminfo
:rv
命令显式读取它。因此,您可以在两个单独的实例中使用这两个命令通过viminfo文件传输寄存器信息,而无需退出它们

我在
.vimrc
中设置了
剪贴板=unnamedplus
,在
vim--version
中设置了
+剪贴板

如果您正在使用X11剪贴板集成,那么可以使用它在Vim实例之间共享复制的内容。请注意,设置
'clipboard'
选项只会影响yanks,因此要从剪贴板寄存器中放入,您必须使用
“+p


但这假设您有一个有效的X11服务器要连接,这在您的情况下是不太可能的。首先,由于您使用PuTTY通过SSH进行连接,因此需要使用SSH转发从客户端导出X11服务器。由于您使用PuTTY,我假设您在一个默认情况下并不真正运行X11的Windows机箱上,所以您必须安装一个并运行它(说起来容易做起来难)此外,由于您正在运行Byobu,您也将无法使用创建Byobu会话时的连接信息重新连接到现有的Byobu会话,该会话很可能指向无效的X11服务器,该连接信息可能与新SSH会话的新X11转发连接信息不再匹配…它的路径是这一切都是可行的,但如果你想听听我的意见,这可能太麻烦了,特别是对于同一个远程框中两个Vim实例的这个特殊用例。

由于[viminfo]文件,你可以在Vim会话之间粘贴。默认情况下,Vim存储非空寄存器(包括默认寄存器)的内容这就是为什么在启动Vim后立即输入(使用
p
)时,会得到上次退出Vim前最后一次拖动(使用
yy
)的内容

viminfo文件在Vim退出之前写入,并在Vim初始化期间读取。这就是为什么如果在退出第一个实例之前启动Vim的第二个实例,则不会自动工作。然后,第二个实例将过早读取viminfo文件(或第一个实例写入太晚)允许您在实例之间放置拉伸的文本

您可以使用
:wviminfo
wv
命令显式写入viminfo文件。您可以使用
:rviminfo
:rv
命令显式读取它。因此,您可以在两个单独的实例中使用这两个命令通过viminfo文件传输寄存器信息,而无需退出哼哼

我在
.vimrc
中设置了
剪贴板=unnamedplus
,在
vim--version
中设置了
+剪贴板

如果您使用的是X11剪贴板集成,您可以使用它在Vim实例之间共享复制的内容。请注意,设置
“剪贴板”
选项只会影响yanks,因此要从剪贴板寄存器中放入,您必须使用
“+p


但这假设您有一个有效的X11服务器要连接,这在您的情况下是不太可能的。首先,由于使用PuTTY通过SSH进行连接,因此需要使用SSH转发从客户端导出X11服务器。由于您使用的是PuTTY,我假设您使用的是Windows box,默认情况下并不真正运行X11,因此您必须安装一个并运行它(说起来容易做起来难)。此外,由于您运行的是Byobu,因此重新连接到现有Byobu会话时也会遇到问题,这很可能会指向无效的X11服务器,使用创建Byobu会话时的连接信息,该信息可能不再匹配新SSH会话的新X11转发连接信息。。。这是可能的,但如果你想听听我的意见,这可能太麻烦了,特别是对于同一个远程框中两个Vim实例的这个特殊用例。

谢谢你的回复。您所说的有效X11服务器是什么意思?我是否需要在我的服务器上插入一些包,即使有root权限@幽幽子的筷子 通常,您在有屏幕+键盘的地方运行它,所以这实际上是您运行PuTTY的机器