假设我有一条如下所示的行:
(Type)obj.method());
是否有一个动作会移动到一行中特定字符的最后一个?我想做
^c (motion to ')' character) (insert text) <Esc>
并将那条线转换为
obj.otherMethod());
我知道我可以使用#f 或#t,但我宁愿不计算括号。
假设我有一条如下所示的行:
(Type)obj.method());
是否有一个动作会移动到一行中特定字符的最后一个?我想做
^c (motion to ')' character) (insert text) <Esc>
并将那条线转换为
obj.otherMethod());
我知道我可以使用#f 或#t,但我宁愿不计算括号。
据我了解您的问题,您不只是想转到字符的最后一个实例,您可以通过转到行尾并向后搜索来实现。您想将文本从当前插入符号位置清除到字符的最后一个实例,对吗?
当中间可能有n个相同的字符时,我通常会使用模式搜索来完成对所需字符的动作。)
在您的示例中,您可以通过使用从当前插入符号位置清除到最后一个位置c/);Enter,因为只有最后一个实例o
后跟;
. 例如,如果您想选择介于两者之间的所有内容,则可以在此之前使用 av而不是。c
使用相同的示例,您可以o
使用/odEnter.
一开始可能看起来很乏味,但实际上你可能会直接看你想要的位置,所以你已经可以看到你需要的额外字符,你只需要增加你的特异性,直到你得到匹配,你'只要你有,就会有即时的视觉反馈set incsearch
。
注意:如果您的行末尾没有分号,您可以通过使用)\n
搜索下一个)
后跟换行符来移动到最后一个括号。
您可以使用可视模式:
v$F)c
但在这种情况下,您实际上只是插入一些新文本并更改大小写:
f.aotherEscl~