Vim noob在这里。我试图选择多行代码来复制和粘贴到其他区域。有没有办法在不使用鼠标的情况下执行此操作?
答案 0 :(得分:4)
其他一些根本不使用视觉模式的方法:
使用标记
在ma
移动到其他地方
使用y'a
使用搜索动作
在您要抓取的部分的末尾本地化一些唯一标记
使用y/foo<cr>
(正向搜索)或y?bar<cr>
(向后搜索)
使用文字对象
确定哪个文本对象会映射到您想要的东西:
内/外字,iw
/ aw
内/外对,i'"([{<
/ a'"([{<
内/外html标记,it
/ at
句子,s
段落,p
“阻止”,]
...
使用yip
使用其他动作
猛拉到功能结束:y]}
猛然到文件末尾:yG
所有上述具有可视模式的解决方案
V'ay
V/foo<cr>y
V?bar<cr>y
Vipy
等
V]}y
VGy
:h motion.txt
希望能够像对待我一样打击你的思想。
答案 1 :(得分:2)
您可以将光标放在要复制的第一行,然后键入nyy
,其中n
是您要复制的行数。例如,键入2yy
以复制光标下的两行。
然后,您可以使用p
粘贴它们。
您还可以通过将光标放在某处并按住Shift键来选择多行。将光标移动到所需选择的末尾,然后停止按Shift键。然后使用y
(而非yy
)进行复制,并粘贴p
。
答案 2 :(得分:1)
是的,在正常模式下输入V[direction]
,您将突出显示多行。如果您不想要整行,请使用v
代替V
。要复制它,请点击y
并移至要粘贴的区域,然后点击p
。要删除它,而不是y
使用x
。
或者,您只需使用[number of lines]yy
来抽取一些行或[number of lines]dd
来剪切一些行。在这种情况下,粘贴是一样的。