在复制和粘贴中避免换行麻烦

时间:2014-11-03 03:32:47

标签: vim

假设我有这样的东西(我用$显示了换行符(新行)

This is line1$
This is line2$
$
This is line3$

我的目标是复制line1并将其粘贴到空行(尽可能快),使其看起来像这样

This is line1$
This is line2$
This is line1$
This is line3$

不幸的是我无法做到这一点。这是我到目前为止所尝试的 在正常模式下,光标在第1行,我按下V.结果选择整行,包括(换行符)$。在那之后为了猛拉它我按"*y现在在正常模式下我移动到空白行并按“* p因此我得到

This is line1$
This is line2$
$
This is line1$
This is line3$

然后我尝试按“* P,我得

This is line1$
This is line2$
This is line1$
$
This is line3$

如何轻松复制和粘贴以获得结果

This is line1$
This is line2$
This is line1$
This is line3$

我知道我可以在空行上按dd将其删除但是我想知道是否有更有效的方法(这与我已经在做的事情很接近)

4 个答案:

答案 0 :(得分:2)

使用yy复制所需的行。将光标移动到空行并运行

Vp

直观地选择整行并粘贴替换该部分的内容。

答案 1 :(得分:0)

为了达到你想要的效果,首先将光标放在第1行的开头,然后按:

[shift]y

然后将光标移动到空白行开头的第2行下方,然后按:

[shift]p

基本上,[shift]y (正常大写Y)复制到行尾,[shift]p (正常大写P)复制到当前行地点。试一试,如果您有问题,请告诉我。

答案 2 :(得分:0)

不移动光标,可以使用以下构造

1t2|norm gJ

,其中

1t2      -- Copy line 1 and put it below line 2
norm gJ  -- join next (empty) line and remove trailing space

答案 3 :(得分:0)

仅使用ex命令:

/^$/d|1t-

/^$/d    " jump to next empty line and delete it
1t-      " copy the first line above the current line