VIm更改括号类型(不使用搜索和替换)

时间:2014-11-06 17:39:10

标签: vim

我正在寻找一个VIM键组合来改变像

这样的东西
blahblah["hello"]

blahblah("hello")

到目前为止我的最大努力是

0f[yi[%c%()^["0P^[

但是我会非常感激任何更好的。

BTW,我的组合工作:

  1. 找到[的第一个实例(你明白了我的意思),
  2. 猛拉内部(这当然意味着默认情况下注册0,并将光标留在第一个"),
  3. 使用[
  4. 将光标移回%的第一个实例
  5. 删除整个[...]位并进入插入模式,
  6. ()<Esc>写出插入模式,
  7. 将寄存器0的内容粘贴到()
  8. 之间

1 个答案:

答案 0 :(得分:0)

我希望有一个令人难忘的关键组合,我可以用于这样的事情,你想要保留内容,但改变周围环境。

我的提案,如果您将其减少到最低限度(并使用ca[而不是%c% - 则a用于我yi[ca[()<Esc>"0P 动议已知的并不是太糟糕,因为一旦你知道它是可能的,你可以再次发明这种东西:

VISUAL LINE

但是,我想到,当您需要在文件中执行其中一些操作时,搜索和替换将成为正确的解决方案。这是我最大的努力:

  1. 以可视模式选择区域(我倾向于使用:s/\[\(.\{-}\)\]/(\1)/g<Enter>模式作为默认模式),
  2. 然后{{1}},您已完成。
  3. 这本身看起来有点疯狂,但它只是所谓的反向引用的一个简单例子,所以我很高兴在我的脑海中也必须明白这一点。