2011-06-10 146 views
2

有了这个LOC:括在另一个函数调用的函数调用(RETVAL作为参数)

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

va)oB将选择整条生产线,并ys%)将仅包围的m,导致:

... (m)eta_sca... 

请回答这两种情况

(我用spf13-vim与除了一些视觉上的变化的默认设置,如果有任何关联)

回答

3
  1. ifoo(<Esc>然后f)i)<Esc>
  2. bifoo(<Esc>然后f)i)<Esc>

,但我仍然是Vim noob

- 编辑 -

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

方案1

vt,sffoo<CR> 
  1. vt,选择一切,直到第一,
  2. s推出Surround.vim
  3. f指示环绕输入 “功能”
  4. foo标识符
  5. <CR> Enter键。

这是6个按键,不包括输入foo哪个 - 我认为 - 不能真正避免。

方案2

bvt,sffoo<CR> 

这是一样的情况,区别是你键入b先回去的meta_scanner_token_name的第一个字母。

+0

spf13-vim有一个插件,它可以自动关闭任何类型的(所以这不会像这样工作,同时,正如我所说的,我正在寻找最快的方法来做到这一点。 t downvote this虽然,因为你说你是vim的noob,就像我一样 – Flavius 2011-06-10 06:43:32

+0

@Flavius - 对不起,我没有按照链接spf13-vim。看我的编辑... – romainl 2011-06-10 07:17:14

+0

+1很好的答案! – Flavius 2011-06-10 09:56:17

2

使用普通的vim,你可以(方案2的前缀为b)做到这一点

`cf)foo()<esc>P` 

如果你的vim插件添加为你关闭的括号,你可以将来自序列。根据它离开光标的位置,您可能需要使用p而不是P

相关问题