"粘贴内部",类似于" yank inner"

时间:2014-05-28 12:12:37

标签: vim

是否有任何已知的,直截了当的方式来执行inner <text-object> - Vim中的功能类似于yank-inner和delete-inner,只有粘贴?我知道如何使用可视模式执行此操作,但感觉步骤太长了。

示例:

delete-inner(di<text-object>):

user.name("Carl") - &gt; d i &#34; - &gt; user.name("") + Carl被复制到剪贴板。

现在,我偶尔会发现自己也想做这样的事情:

user.name("") - &gt; p i &#34; - &gt; user.name("Carl")

我不喜欢在视觉模式中执行额外步骤,也不执行字符/字符串搜索( / f )。有没有办法解决?如有必要,也欢迎插件建议。

2 个答案:

答案 0 :(得分:1)

我经常需要这个,我写了一个插件来简化(即没有中间视觉模式)并允许最大速度:ReplaceWithRegister

此插件提供了一个二合一gr命令,该命令用{motion} / text对象,整行或当前选择覆盖的文本替换寄存器的内容;旧文本被删除到黑洞寄存器中,即它已经消失了。它透明地处理许多极端情况,并允许通过标准.命令快速重复。如果您不喜欢它,它的页面会链接到替代品。

所以,你的例子是 g r i &#34;

编辑:以前的插件版本没有很好地处理空文本对象;已修复最新版本1.41。

答案 1 :(得分:0)

_ d P

对我有用,它贴在左边而不是右边,它留在引号

假设您要使用剪贴板上的值更改值

或者,您可以使用:map将pi映射到上面的命令或Visual方法键