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

时间:2013-11-26 08:14:47

标签: 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;

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

3 个答案:

答案 0 :(得分:2)

当您抽出c = getchar() 时,寄存器处于 linewise模式,因此任何粘贴也会创建一个新行。我的UnconditionalPaste plugingcp之类的映射,例如一个字符粘贴。这样,您可以在while(语句后插入该行,并使其保持在同一行。

但实际上,您可能希望将c后面的while(替换为被取消的文本。为此,我的另一个插件ReplaceWithRegister plugin很方便。有了它,您可以直观地选择c或通过动作l解决它,并使用插件的gr映射将覆盖的文本替换为注册内容(再次,坚持同一行,所以你只需要处理多余的缩进)。

答案 1 :(得分:1)

我通常使用 f F 在同一行的动作中进行此类工作。所以我会这样做:

:20

转到c = getchar()!= EOF

fcdf)

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

:7

转到第七行,

f(p

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

答案 2 :(得分:1)

  1. 将光标放在要拉开的行上。
  2. 如果您不在c,请点击^
  3. 使用d$剪切到行尾。
  4. 移动到您要放置的位置。以/c为例。
  5. 进入视觉模式,并使用vlp