假设我在一行中有一个正则表达式,我想复制光标位置上方具有该模式的第一行而不移动光标。例如(光标标有 ||):
This is a short example.
On the other hand,
I'm having trouble with it. ||
如何将“This is a short example”这句话复制到光标位置(II)?如果我搜索这句话,光标会移动到This(?This is)。
答案1
你可以这样做:
:?short?t.
short
它对( )进行向后搜索?short
,并将匹配的行 ( t
) 复制到当前行 ( .
) 之后。
您可以在 中阅读有关 Ex 命令的内容,:h :index
并在 中阅读有关范围的内容:h range
。
编辑
实际上,它并不完全是那样工作的,但我认为上面的解释可能更有意义。
确切的机制简明扼要地解释如下:h :copy
:
:[range]co[py] {address}
Copy the lines given by [range] to below the line given by {address}.
这里,[range]
是当前匹配行上方的第一行short
,{address}
是当前行,.
。
我爱Vim。
答案2
我想到了一些方法和插件,但最自然的方法是搜索 ( ),拉出,然后使用+?This is
跳转回原始位置并粘贴。借助跳转列表 (cp. ),临时移动并不那么糟糕。CtrlO:help jumplist