是否有用于选择粘贴文本的vim命令?

时间:2010-11-30 10:28:59

标签: vim

我发现自己经常重复以下操作模式。

我通常进入视觉模式,选择一些行或阻止。然后我使用y抓取它们,并使用pP粘贴它们。下一步是选择粘贴的文本,替换变量或函数名称或更改缩进。

我知道我可以使用gv来重新选择“原点”,但我想要的是选择“目的地”的类似命令。

:help gv提及:
After using "p" or "P" in Visual mode the text that
was put will be selected.

但它仅在您通过寄存器内容替换选择时有用,而不是在插入整个新块时。

3 个答案:

答案 0 :(得分:45)

您正在寻找

`[v`]

答案 1 :(得分:10)

我更喜欢以下简单的映射到Benoit的函数

nnoremap <expr> g<c-v> '`[' . strpart(getregtype(), 0, 1) . '`]'

了解有关表达式图的更多信息:

:h :map-expression

正如@ZyX指出的那样,strpart不是必需的,可以改写为:

nnoremap <expr> g<c-v> '`[' . getregtype()[0] . '`]'

答案 2 :(得分:0)

您的一个用例是在粘贴后更改缩进。

我使用以下地图来实现这一目标:

nnoremap <leader>[ `[V`]<
nnoremap <leader>] `[V`]>

他们执行以下操作:

  • 取消最近粘贴的块
  • 缩进最近粘贴的块

我发现这些非常有用且使用得很好的地图。

相关问题