Vim 复制粘贴缓冲区

Vim 复制粘贴缓冲区,vim,Vim,假设我有以下文本(为了清晰起见,我对行进行了编号),并且光标位于第5行的开头: 1 2 var x = 1; 3 var y = 2; 4 5 if (true) { 6 print("Hey!"); 7 } 好的,现在我试着删掉第5、6、7行(所有那些“如果”的东西)。为此,我: Vjjd。现在看来我在第四行的开头,这是一个空字符串 我的问题:现在是否可以删除第4行而不丢失先前复制的第5、6、7行(即“如果”的内容),这样我就可以将它们粘贴到其他地方,比如稍后粘贴到第1行?是:可以

假设我有以下文本(为了清晰起见,我对行进行了编号),并且光标位于第5行的开头:

1
2 var x = 1;
3 var y = 2;
4 
5 if (true) {
6     print("Hey!");
7 }
好的,现在我试着删掉第5、6、7行(所有那些“如果”的东西)。为此,我:
Vjjd
。现在看来我在第四行的开头,这是一个空字符串


我的问题:现在是否可以删除第4行而不丢失先前复制的第5、6、7行(即“如果”的内容),这样我就可以将它们粘贴到其他地方,比如稍后粘贴到第1行?

是:可以使用黑洞缓冲寄存器:键入
“\u dd

您始终可以使用“n”将其拖动或删除到寄存器中,其中n几乎是任意键。请参阅“帮助寄存器”中的可用寄存器列表,其中一些具有特殊含义。例如,您可以执行以下操作:

> "a3dd (to delete the last three lines into a register called a)
> dd (to delete the blank line) 
> "ap (to paste the a register)
您还可以使用Vjj“ad”来匹配您在原始问题中所做的操作。

如果您的#4行是空行,则很容易,您不必使用register。只要做:

kJ
这意味着:

k: move to #3
J: (shift-J) Join #3 and #4
或者您更喜欢在
INSERT
模式下执行此操作

i<BS>

(为了清楚起见,我对行进行了编号)
那么这些数字在您的文本/文件中吗?删除3行后,第4行是空行?不,我的文本不包含行号。
I<c-u>
"2p