Vim 将函数调用包含在另一个函数调用中(retval作为参数)

Vim 将函数调用包含在另一个函数调用中(retval作为参数),vim,Vim,拥有此LOC: printf("%s (%d)\t(%d)\t%d-%d\t", meta_scanner_token_name($ret['major']), $ret['major'], (string)$ret['dirty'], $ret['start_line'], $ret['minor']); 在对foo的另一个函数调用中,用什么样的快捷方式将对meta_scanner_token_name的调用包含在另一个函数调用中 printf("%s (%d)\t(%d)\t%d-%d\t

拥有此LOC:

printf("%s (%d)\t(%d)\t%d-%d\t", meta_scanner_token_name($ret['major']), $ret['major'], (string)$ret['dirty'], $ret['start_line'], $ret['minor']);
在对foo的另一个函数调用中,用什么样的快捷方式将对meta_scanner_token_name的调用包含在另一个函数调用中

printf("%s (%d)\t(%d)\t%d-%d\t", foo(meta_scanner_token_name($ret['major'])), $ret['major'], (string)$ret['dirty'], $ret['start_line'], $ret['minor']);
鉴于此

第一种情况:我的光标在函数开头的“m”上? 第二种情况:我的光标在元扫描标记名上的某个地方? vaoB将选择整条线,ys%将仅包含m,从而导致:

... (m)eta_sca...
请回答这两种情况

我使用默认设置,除了一些视觉变化,如果有任何相关性

伊福那么菲 比福然后菲 但我还是个疯子

-编辑-

我看到environment.vim是Surround.vim的修改版本,如果它与Surround兼容,您可以执行以下操作:

情景1


它与场景1相同,只是您首先键入b返回元标记名称的第一个字母。

使用普通vim,您可以在场景2中使用b作为前缀

`cf)foo()<esc>P`

如果您的vim插件为您添加了结束参数,您可以从序列中删除它。根据它离开光标的位置,您可能需要使用p而不是p。

spf13 vim有一个插件,可以自动关闭任何键入的内容,因此这不会像那样工作,同时,正如我所说的,我正在寻找最快的方法。不过,我不会投反对票,因为你说你和维姆一样是个疯子。
bvt,sffoo<CR>
`cf)foo()<esc>P`