2014-03-24 46 views
7

如果我要复制17-19行33行,我可以在这样一个命令做到这一点:Vim的:在一个命令跨越缓冲区拷贝文本

:17,19t33 

是否有这样做的等效方式如果目标是另一个打开的Vim缓冲区?例如,如果我想将当前缓冲区的行17,19复制到缓冲区#2中,是否有办法在不延迟文本,切换缓冲区和粘贴的情况下执行此操作?

请注意,我通常会在拆分中打开源文件和目标文件。

+0

通常的“vim方法”是通过附加到一个已命名的寄存器来建立文本。 ''“Ayy'。最终你会想切换到那个缓冲区,然后粘贴内容。是否有这种方法的原因? –

+0

@PeterRincker从语义上讲,我的大脑将此视为一个步骤(将文本从此缓冲区复制到),所以我希望能够在一个步骤中执行它,而不是三个步骤(复制,切换缓冲区,粘贴)。在原始问题中我没有提及这一点,但通常我想这样做当这两个文件在分割时打开 –

回答

4

链接是否被视为单线程?例如:

:17,19y | b# | 33put | b# 

不复杂,但应该这样做。为了方便,我使用了b#

Peter给Peter指出我犯的一个错误 - 我把那个初始缓冲开关移到了最后。

+2

这是“拉”文本不是“发送”文本我认为你正在寻找这样的东西:'17,19y | b2 | 33pu | b#'也可能想要设置' 'hidden''或使用':hide' –

+0

@guessimtoolate能否详细说明你的答案并解释给出的参数是做什么的?例如'b#'和'33put',我以前从来没有见过。 – PascalPrecht

+0

'b#'改变当前缓冲区到最后一个使用的缓冲区,'33put'将第33行的寄存器内容粘贴到管道上ols'|'用于顺序链接命令。 – guessimtoolate