动作移动到一行的特定字符的最后一个

时间:2013-11-13 22:20:35

标签: vim

说我有一行看起来像这样:

(Type)obj.method());

是否有动作会转到一行中特定字符的最后一个?我想做

^c (motion to ')' character) (insert text) <Esc>

并将该行转换为

obj.otherMethod());

我知道我可以使用#f或#t,但我宁愿不算数量。

2 个答案:

答案 0 :(得分:2)

正如我理解你的问题,你不只是想去一个角色的最后一个实例,你可以通过走到行尾并向后搜索来实现。您想要从当前插入符号位置清除文本到最后一个字符实例,对吗?

当我们之间可能存在相同字符的 n 时,我通常会使用模式搜索来完成对所需字符的动作。在您的示例中,您可以使用 c / 从当前插入位置清除到最后); 输入,因为只有o的最后一个实例后跟;。你可以在 v 之前加上 c ,例如,如果你想选择介于两者之间的所有东西。

使用相同的示例,您可以移动到第3 o / o d Enter

一开始看起来很乏味,但实际上你可能会直接看到你想要的位置,所以你已经可以看到你需要的其他角色,你只需要增加你的特异性,直到你得到匹配,只要你有set incsearch,就会立即获得视觉反馈。

注意:如果您的行末尾没有分号,则可以使用)\n搜索下一个)后跟换行符来移动到最后一个分号。

答案 1 :(得分:1)

您可以使用视觉模式:

v $ ˚F C

但在这种情况下,你只是插入一些新文本并更改案例:

˚F 0 ħ 电子 - [R ESC