2
value(val_1)
value(val_100)
value(val_10)

我想选择括号之间的文本并为多行执行此操作,我可以使用一行,f(va(但我不知道如何选择剩余的 2 行。

编辑(解决方案)

我想要的是用每行唯一的文本更改括号内的文本,首先,我想选择文本,删除它然后手动更改文本,@rosipov 告诉有一个插件来做选择部分,这很棒,但@romainl 给了我另一个方向,也有效。

f(ci(foo<Esc>jci(bar<Esc>jci(baz<Esc>

4

2 回答 2

2

你想选择这个:

value([val_1])
value([val_100])
value([val_10])

或选择:

value([val_1)]
[value(val_100)]
[value(val_10])

不幸的是,第一个是不可行的。但根据您要对所选文本执行的操作,例如更改它,一个合理的近似值将是:

f(l<C-v>jj$cnew value)<Esc>

但是我确信很多 Vimmer 可能会通过替换来解决这个问题:

:,+2s/(.*/(new value)

第二个简单地完成:

f(lv3/)h

或者

f(ljjt)
于 2013-03-28T06:21:27.853 回答
1

在这种情况下,您可能会对 EasyMotion 插件感兴趣:https ://github.com/Lokaltog/vim-easymotion

使用插件它将是:f(vLeaderLeaderf)c

或者:LeaderLeaderf(avLeaderLeaderf)c

c代表第三个右括号的字母在哪里,a代表第一个开头 p。

编辑:没有插件可以通过行号来完成。

假设您使用第 1-3 行:f(v3Gf)

where3G代表“转到第 3 行”,适用于视觉和正常模式。

于 2013-03-28T04:13:53.803 回答