假设有两个已加载的缓冲区/文件,它们都是通过拆分窗口显示的,行号已启用且因此已知。
有没有办法留在一个缓冲区中,指定另一个缓冲区的一行并将其拉出以便将其放入活动缓冲区?
答案 0 :(得分:6)
:let @0 = join(getbufline('#', 42), "\n") . "\n"
(将#
替换为另一个缓冲区的名称,将42
替换为另一个缓冲区中的行号。)
答案 1 :(得分:3)
如果两个缓冲区都已保存到磁盘,并且您的系统上有 sed ,则可以使用此功能。
:r !sed -n -e 42p #
将42替换为要从备用缓冲区复制的行。
此命令将:read
来自!sed
( sed 程序)的输出,该输出仅被指示为(-n
)打印{{1}来自“其他”p
文件的行42
。内容将插入当前行(#
)缓冲区中的当前行下方。
答案 2 :(得分:1)
:vert diffsplit otherfilename
或(如果已经打开了bufferes)
:windo diffthis
会合理的。在diffmode中,有命令
:diffput
:diffget
和它们的正常命令等价物( d p , d o (_obtain))来抓取和插入/替换其他缓冲区中的行。