在另一个函数调用中包含函数调用(retval as parameter)

时间:2011-06-10 06:22:00

标签: 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']);

关于在meta_scanner_token_name的另一个函数调用中将foo的调用括起来的关键笔划的最快方法是什么,yelding:

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']);

鉴于

  1. 第一个场景:我的光标位于功能开头的'm'处?
  2. 第二种情况:我的光标位于meta_scanner_token_name
  3. va)oB会选择整行,ys%)只会包含m,从而导致:

    ... (m)eta_sca...
    

    请回答两种情况

    (我使用spf13-vim默认设置,但有些视觉更改除外(如果有任何相关性)

2 个答案:

答案 0 :(得分:3)

  1. ifoo(<Esc>然后f)i)<Esc>
  2. bifoo(<Esc>然后f)i)<Esc>
  3. 但我仍然是Vim noob

    - 编辑 -

    我看到“Surrounding.vim”是“Surround.vim”的修改版本,如果它与Surround兼容,你可以这样做:

    情景1

    vt,sffoo<CR>
    
    1. vt,选择所有内容,直到第一个,
    2. s启动Surround.vim
    3. f指示Surround输入“功能”
    4. foo标识符
    5. <CR>输入密钥。
    6. 这是6次击键,不包括键入foo - 我认为 - 无法真正避免。

      场景2

      bvt,sffoo<CR>
      

      除了您首先输入b返回meta_scanner_token_name的第一个字母外,它与方案1相同。

答案 1 :(得分:2)

使用普通的vim你可以这样做(方案2的前缀为b

`cf)foo()<esc>P`

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