Vim:在一个命令中跨缓冲区复制文本
如果我想将第17-19行复制到第33行,我可以在一个命令中这样做:Vim:在一个命令中跨缓冲区复制文本,vim,Vim,如果我想将第17-19行复制到第33行,我可以在一个命令中这样做: :17,19t33 如果目的地是另一个打开的Vim缓冲区,是否有等效的方法?例如,如果我想将当前缓冲区的第17、19行复制到缓冲区#2中,有没有一种方法可以在不拖动文本、切换缓冲区和粘贴的情况下执行此操作 请注意,我通常将源文件和目标文件分开打开。链接是否算作一行?例如: :17,19y | b# | 33put | b# 不复杂,但应该这样做。为了方便起见,我使用了b# 彼得指出了我犯的一个错误,这是值得称赞的——我将初始
:17,19t33
如果目的地是另一个打开的Vim缓冲区,是否有等效的方法?例如,如果我想将当前缓冲区的第17、19行复制到缓冲区#2中,有没有一种方法可以在不拖动文本、切换缓冲区和粘贴的情况下执行此操作
请注意,我通常将源文件和目标文件分开打开。链接是否算作一行?例如:
:17,19y | b# | 33put | b#
不复杂,但应该这样做。为了方便起见,我使用了b#
彼得指出了我犯的一个错误,这是值得称赞的——我将初始缓冲开关移到了末尾。常见的“vim方式”是通过附加到命名寄存器来构建文本,例如
“Ayy
。最终,您将希望切换到该缓冲区,然后粘贴内容。有反对这种方法的理由吗?@PeterRincker从语义上讲,我的大脑将此视为一个步骤(将文本从这个缓冲区复制到那个缓冲区),因此我希望能够在一个步骤而不是三个步骤(复制、切换缓冲区、粘贴)中执行它。我在最初的问题中没有提到这一点,但通常我想在两个文件以拆分方式打开时都这样做。这是“拉”文本还是“发送”文本。我想您正在寻找这样的产品:17,19y | b2 | 33pu | b#
。可能还需要设置'hidden'
或使用:hide
@gustimtoolate您能否详细说明您的答案并解释给定参数的作用?例如,b#
和33put
,我以前从未见过它们。b#
将当前缓冲区更改为最后使用的缓冲区,33put
将“寄存器”的内容粘贴到第33行。管道符号
用于顺序链接命令。