微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vim可以用默认寄存器替换文本对象吗?

示例:我有一些文本,比如这个PHP代码

if(empty($condition)) {
    // work here...
}

我的认寄存器包含字符串“$NewCondition”.

我想将光标放在第一组parens(…)中并执行一个命令,结果如下:

if($NewCondition) {
    // work here...
}

所以我的问题是:有没有办法用认寄存器替换parens中的文本?

我发现的大多数建议,such as this one,当有嵌套的parens时失败.

我也知道我可以命名寄存器,例如“ayi”(将所有文本写入注册表中,但我不想在每次输入时输入两个额外的字符.这就是为什么我要问的问题认寄存器.

在理想的解决方案中,当替换完成时,认寄存器仍将包含“$NewCondition”.

解决方法

vi("_dP

> vi(选择空($condition)
>“_d将其删除到黑洞寄存器中
> P将认寄存器的内容放在光标之前,现在是最后一个)

我经常使用它,所以我有这个映射使整个事情更短:

vnoremap <leader>p "_dP

所以(和,作为枫树)我做vi(,p.

作为旁注,如果光标位于第二组括号中,则可以执行vi(i(向上一级等等).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐