是否有任何已知的,直截了当的方式来执行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 , 吨)。有没有办法解决?如有必要,也欢迎插件建议。
答案 0 :(得分:1)
我经常需要这个,我写了一个插件来简化(即没有中间视觉模式)并允许最大速度:ReplaceWithRegister。
此插件提供了一个二合一gr
命令,该命令用{motion} / text对象,整行或当前选择覆盖的文本替换寄存器的内容;旧文本被删除到黑洞寄存器中,即它已经消失了。它透明地处理许多极端情况,并允许通过标准.
命令快速重复。如果您不喜欢它,它的页面会链接到替代品。
所以,你的例子是 g r i &#34; 。
编辑:以前的插件版本没有很好地处理空文本对象;已修复最新版本1.41。
答案 1 :(得分:0)
“ _ d 我 ” P
对我有用,它贴在左边而不是右边,它留在引号
中假设您要使用剪贴板上的值更改值
或者,您可以使用:map
将pi映射到上面的命令或Visual方法键