#1 楼
从:help :yank
开始::[range]y[ank] [x] Yank `[range]` lines [into register x].
所以,要拉动第4行,请输入:
:4yank
注意可以通过
<C-o>
从插入模式轻松完成此操作;这使您可以执行一个命令,然后返回到插入模式;例如:
<C-o>:4yank
当然,您也可以使用其他范围。一些示例:
第1至3行:
:1,3yank
整个缓冲区:
:%yank
从当前行到行尾缓冲区:
:.,$:yank
当前行和下一行3:
:.,+3yank
当前行和前3行:
:-3,.yank
第3行在当前行上方:
:-3yank
关于范围最需要记住的内容:
以
:line1,line2command
的形式。.
是当前行(大多数情况下实际上可以省略点; :.,+3yank
和:,+3yank
是相同的)用
+n
和-n
指定相对于当前位置的行。 :help [range]
了解更多信息。
评论
提及
– PhilippFrank
15年5月12日在11:37
还值得一提的是,您可以将:4yank缩写为:4y
– NewbieOnRails
15年5月12日在18:44
#2 楼
除了Carpetsmoker的答案外,我还应该指出令人敬畏的:help :m
和:help :t
。 :4t.
,或者,如果要复制当前行正上方的那一行:
:4t-
#3 楼
除了获得的ex模式命令外,您还可以在命令模式下实现该功能,例如通过:4GY''
-表示:转到第4行(4G
),拉行(Y
),然后返回到上一行(''
)。对于第二个问题,例如通过:mm3kY'm
-表示:设置标记m(mm
),向上移三行(3k
),拔行(Y
),返回标记m('m
)。评论
使用``可能比''更好的建议,因为前者返回同一行和同一列。同上`m vs.'m。
–詹姆斯
2015年6月15日14:08
我同意。 (因为它们有特殊含义,所以有任何想法如何在Wiki标记中创建原义文本?)-否则,您的评论将很好地修正我的答案并为读者提供提示。
–贾尼斯(Janis)
15年6月15日在15:58
您必须使用多个反引号来分隔内联代码(例如,daringfireball.net / projects / markdown / syntax#code)。我知道它可以在问题/答案中使用,但是我无法在评论中使用它。
–詹姆斯
15年6月15日在16:10
#4 楼
只需键入:4y
到第4行
,它将进入未命名的寄存器。然后,例如,您可以使用
p
将其放置在其他位置。您还可以使用[n]p
,例如10p粘贴10次。您可以使用
将其放入名为“ a”的命名寄存器中,
评论
将其放入带有“ ay4”的命名寄存器的部分看起来不正确。如果执行此操作,vim将等待您说“ 4 whats?”。例如,如果您按下Enter键,它将从开始的4行开始当前位置,如果您输入/ foo
–唐·哈奇
2015年5月13日下午5:34
最后一条命令应显示为4G“ ayy。
– romainl
15年5月13日在8:13
#5 楼
您可以:10y <Enter> (to copy the line 10)
p (paste line 10 where the cursor is)
设置相对编号也有助于在代码行之间移动。
:set relativenumber
现在,您可以使用以下命令复制光标上方的第5行:
:-5y <Enter>
:p (to paste)
评论
如何使用行号将行复制到光标所在的位置?