0

假设我有一条如下所示的行:

(Type)obj.method());

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

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

并将那条线转换为

obj.otherMethod());

我知道我可以使用#f 或#t,但我宁愿不计算括号。

4

2 回答 2

2

据我了解您的问题,您不只是想转到字符的最后一个实例,您可以通过转到行尾并向后搜索来实现。您想将文本从当前插入符号位置清除到字符的最后一个实例,对吗?

当中间可能有n个相同的字符时,我通常会使用模式搜索来完成对所需字符的动作。)在您的示例中,您可以通过使用从当前插入符号位置清除到最后一个位置c/);Enter,因为只有最后一个实例o后跟;. 例如,如果您想选择介于两者之间的所有内容,则可以在此之前使用 av而不是。c

使用相同的示例,您可以o使用/odEnter.

一开始可能看起来很乏味,但实际上你可能会直接看你想要的位置,所以你已经可以看到你需要的额外字符,你只需要增加你的特异性,直到你得到匹配,你'只要你有,就会有即时的视觉反馈set incsearch

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

于 2013-11-13T22:39:47.107 回答
1

您可以使用可视模式:

v$F)c

但在这种情况下,您实际上只是插入一些新文本并更改大小写:

f.aotherEscl~

于 2013-11-13T22:42:51.043 回答