Vim 菜鸟在这里。我正在尝试选择多行代码来复制和粘贴到其他区域。有没有办法不使用鼠标来做到这一点?
3 回答
其他一些根本不使用视觉模式的方法:
使用标记
在某处留下标记
ma
搬到别处
从这里拉到那里
y'a
使用搜索动作
在要拉出的部分末尾本地化一些唯一标记
y/foo<cr>
使用(向前搜索)或y?bar<cr>
(向后搜索)从这里拉到那里
使用文本对象
确定什么文本对象将映射到您要拉动的内容:
内/外字,
iw
/aw
内/外对,
i'"([{<
/a'"([{<
内部/外部 html 标记,
it
/at
句子,
s
段落,
p
“堵塞”,
]
…</p>
拉那个文本对象,比如说,
yip
使用其他动作
拉到函数末尾:
y]}
拉到文件末尾:
yG
上述所有具有视觉模式的解决方案
V'ay
V/foo<cr>y
V?bar<cr>y
Vipy
, ETC。V]}y
VGy
:h motion.txt
希望会让你大吃一惊,就像它对我的一样。
您可以将光标放在要复制的第一行,然后键入要复制nyy
的n
行数。例如,键入2yy
以复制光标下的两行。
然后,您可以使用p
.
您还可以通过将光标放在某处并按住 Shift 来选择多行。将光标移动到所需选择的末尾并停止按 Shift。y
然后使用 just (而不是)复制yy
并粘贴p
.
是的,在正常模式类型中V[direction]
,您将突出显示多行。如果您不想要整行,请使用v
而不是V
. 要复制它,请点击y
并移动到要粘贴的区域并点击p
。要删除它,而不是y
使用x
.
或者,您可以简单地使用[number of lines]yy
来拉出一些行或[number of lines]dd
剪切一些行。在这种情况下,粘贴是相同的。