Vim替换引号内的内容

11

很多时候我会想把引号之间的内容复制到另一组引号里面。例如,就拿这段代码来说。

var foo = 'bar',
    baz = 'buz';

通常我会在'bar'内执行yi'命令以拷贝单词bar

如何使用我的拷贝替换buz?我知道一种方法是使用di'"0P,但我想知道是否有更简单的解决方案。

3个回答

27

当你的光标处于单词 buz 时,vi'p 可以视觉化选择引号内的内容,然后将最近复制的内容粘贴进去。


1
@ShaneStillwell,阅读“:help text-objects”以了解它的工作原理。此外,您可能会喜欢插件“surround”:http://goo.gl/s9x4F。 - Dmitry Frank
1
当光标位于引号字符 ' 上时,它实际上也可以工作。 - Patrick Oscity

2
我经常需要使用此功能,因此编写了一个插件来简化操作并实现最大速度:ReplaceWithRegister
这个插件提供了一个两合一的gr命令,可以用寄存器中的内容替换{motion} / 文本对象、整行或当前选择覆盖的文本;旧文本将被删除到黑洞寄存器中,即它已经消失了。它可以透明地处理许多特殊情况,并允许通过标准的.命令快速重复。如果您不喜欢它,它的页面上有其他替代方案的链接。

我想我可以习惯这个。所以这既是一种积极的,也是一种风险 :) - sehe

0

还需要注意的是,当您在可视化模式下替换内容后,被替换的内容现在将存在于您的寄存器中。命令::reg 可以显示它。 在您的示例中,命令 p 将把 buz 粘贴到编辑器中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接