如何在Vim编辑器中剪切和粘贴行?

如何在Vim编辑器中剪切和粘贴行?,vim,Vim,我正试图将c=getchar()复制到c!^=EOF 我尝试了shift+v&p,代码将显示在行的正上方,而不是行中 我该怎么办 #include <stdio.h> main() { int c; c = getchar() while (c != EOF { putchar(c); } } #include <stdio.h> main() { int c; w

我正试图将
c=getchar()
复制到
c!^=EOF

我尝试了
shift+v&p
,代码将显示在行的正上方,而不是行中

我该怎么办

#include <stdio.h>

main()
{
    int c;
    c = getchar()
    while (c != EOF {
        putchar(c);
    }
}



#include <stdio.h>

    main()
    {
        int c;

        while (c = getchar()!= EOF) {
            putchar(c);
        }
    }
#包括
main()
{
INTC;
c=getchar()
而(c!=EOF{
普查尔(c);
}
}
#包括
main()
{
INTC;
while(c=getchar()!=EOF){
普查尔(c);
}
}

我通常在与f和f在同一条线上移动的操作中进行此类工作。因此,我会:

:20
转到
c=getchar()!=EOF

fcdf)
将光标放在第一个
c
字母中,并剪切到下一个
字符

:7
到第七行,然后

f(p

要转到第一个
字符和粘贴。

我通常使用与f和f在同一行上移动的操作来执行此类操作。因此,我将执行以下操作:

:20
转到
c=getchar()!=EOF

fcdf)
将光标放在第一个
c
字母中,并剪切到下一个
字符

:7
到第七行,然后

f(p

要转到第一个
字符并粘贴。

当您拖动
c=getchar()
行时,寄存器处于逐行模式,因此任何粘贴也将创建新行。My具有类似于
gcp
的映射,强制执行例如逐行粘贴。这样,您可以在(语句,并使其保持在同一行中


但实际上,您可能希望在
while之后替换
c
与被拉扯的文本。为此,我的另一个插件,也很方便。有了它,你可以直观地选择
c
,或者通过一个动作
l
对其进行寻址,并使用插件的
gr
映射将覆盖的文本替换为寄存器内容(同样,还是保持同一行,因此您只需处理多余的缩进)。

当您拖动
c=getchar()时
line,寄存器处于逐行模式,因此任何粘贴也将创建新行。My具有类似于
gcp
的映射,强制执行例如字符粘贴。这样,您可以在
while(
语句)之后插入该行,并使其保持在同一行中

但实际上,您可能希望在
while之后替换
c
与被拉扯的文本。为此,我的另一个插件,也很方便。有了它,你可以直观地选择
c
,或者通过一个动作
l
对其进行寻址,并使用插件的
gr
映射将覆盖的文本替换为寄存器内容(同样,坚持同一行,因此只需处理多余的缩进)

  • 将光标放在要拉伸的线上
  • 如果您不在
    c
    上,请点击
    ^
  • d$
    将其剪切到行尾
  • 移动到要放置的位置。例如,使用
    /c
  • 使用
    vlp
    进入可视模式并放置
  • 将光标放在要拉伸的线上
  • 如果您不在
    c
    上,请点击
    ^
  • d$
    将其剪切到行尾
  • 移动到要放置的位置。例如,使用
    /c
  • 使用
    vlp
    进入可视模式并放置