我正在尝试将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);
}
}
答案 0 :(得分:2)
当您抽出c = getchar()
行时,寄存器处于 linewise模式,因此任何粘贴也会创建一个新行。我的UnconditionalPaste plugin有gcp
之类的映射,例如一个字符粘贴。这样,您可以在while(
语句后插入该行,并使其保持在同一行。
但实际上,您可能希望将c
后面的while(
替换为被取消的文本。为此,我的另一个插件ReplaceWithRegister plugin很方便。有了它,您可以直观地选择c
或通过动作l
解决它,并使用插件的gr
映射将覆盖的文本替换为注册内容(再次,坚持同一行,所以你只需要处理多余的缩进)。
答案 1 :(得分:1)
我通常使用 f 和 F 在同一行的动作中进行此类工作。所以我会这样做:
:20
转到c = getchar()!= EOF
fcdf)
将光标放在第一个c
字母中并剪切到下一个)
字符。
:7
转到第七行,
f(p
转到第一个(
字符并粘贴。
答案 2 :(得分:1)
c
,请点击^
。d$
剪切到行尾。/c
为例。vlp
。