Vim:如何在Vim视觉模式下复制一个单词,但在视觉块模式下粘贴它?

xoshrz7s  于 2022-11-11  发布在  其他
关注(0)|答案(2)|浏览(168)

我想用vim的可视化模式复制一个简单的文本,然后用块模式粘贴成多行。我该怎么做呢?
例如:

//this all lines are commented for debug -- 
int c = 10;
int a = 2;
uint8 d = 0;
uint8 n = 0;

我想实现:

//this all lines are commented for debug -- 
//this all lines are commented for debug -- int c = 10;
//this all lines are commented for debug -- int a = 2;
//this all lines are commented for debug -- uint8 d = 0;
uint8 n = 0;

我试着突出显示注解部分(使用v right_arrow组合),然后用力拉。现在我想把这个结果粘贴到所有预定行的前面。这不需要在行的开头,我不能使用I选项手动输入注解。

ryhaxcpt

ryhaxcpt1#

我会把第一行拉出来,然后进入块可视化模式,在第一列<C-V>上选择几行,在前面插入I,然后粘贴插入模式下的默认寄存器(<c-r>")。换句话说:

y$<down><home><c-v>4<down>I<c-r>"<esc>

应该可以。

jfgube3f

jfgube3f2#

我认为这是最小值(从第一行第一列的光标开始,可以通过gg 0获得):y$jCTRL-v2 jP.(使用Vim 8.2测试,使用vim -u NONE启动,以确保我的设置不会影响测试。)
鉴于问题的标题,我认为你不需要任何解释,除了P,如果你在视觉块模式,粘贴在所有你选择的行。
然而,Luc Hermitte's answer显示了一个强大的技巧(CTRL-r),它可以在更广泛的情况下使用。

相关问题