Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim:在一个命令中跨缓冲区复制文本_Vim - Fatal编程技术网

Vim:在一个命令中跨缓冲区复制文本

Vim:在一个命令中跨缓冲区复制文本,vim,Vim,如果我想将第17-19行复制到第33行,我可以在一个命令中这样做: :17,19t33 如果目的地是另一个打开的Vim缓冲区,是否有等效的方法?例如,如果我想将当前缓冲区的第17、19行复制到缓冲区#2中,有没有一种方法可以在不拖动文本、切换缓冲区和粘贴的情况下执行此操作 请注意,我通常将源文件和目标文件分开打开。链接是否算作一行?例如: :17,19y | b# | 33put | b# 不复杂,但应该这样做。为了方便起见,我使用了b# 彼得指出了我犯的一个错误,这是值得称赞的——我将初始

如果我想将第17-19行复制到第33行,我可以在一个命令中这样做:

: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行。管道符号
用于顺序链接命令。