2014-11-03 38 views
1

假设我有(以$我已经显示换行符(新行))这样的事情避免线路中断的麻烦在复制和粘贴

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

我的目标是复制线路1和它粘贴到空白行(尽可能快),看起来像这样

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命令来删除它,但是我想知道是否有这样做的一个比较有效的方法(SOM接近我已经在做的)

+0

您是否尝试过'Y $',然后' p'在空行吗? – Caek 2014-11-03 05:54:10

回答

2

使用yy来复制你想要的行。将光标移动到空行和运行

Vp 

为了直观地选择整行并粘贴更换部分内容。

+0

显然前两行是粘贴的。我只想要第一个。你能解释一下命令的作用吗? – Rajeshwar 2014-11-03 03:44:21

+0

@Rajeshwar'yy'复制当前行。 'V'直观地选择当前行。 'p'粘贴复制的行。 (这不应该复制两行,你可能会击中'yj',它复制当前行和下一行) – FDinoff 2014-11-03 03:54:22

+0

是的,它做到了 – Rajeshwar 2014-11-03 04:04:34

0

为了完成你想要什么,首先将光标置于第1行,然后按开始:

[shift]y 

然后在空白行,然后按开始移动以下行2光标:

[shift]p 

基本上,[shift]y(正常的资本Y)拷贝到行尾的和[shift]p(正常的资本P)糊剂在Cu的rrent位置。尝试一下,让我知道你是否有问题。

+0

这并不能解决问题。当我按下“* P – Rajeshwar 2014-11-03 04:03:52

+0

哇!”时,输出与第二个输出相同,我尝试了您的确切设置并确认它正常工作,因为您已经展示了它的预期效果,不知您的'vimrc'设置是否会导致问题。 – 2014-11-03 05:39:58

0

不动你的鼠标,你可以使用下面的构造

1t2|norm gJ 

其中

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

只有ex命令:

/^$/d|1t- 

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