2010-12-21 66 views
2

假設一行文字寫着:如何在vim中調用函數調用?

 
$x = (frobnicate(foo(bar($x, $y)[ 1 ]))[ 1 ]); 

光標是在「frobnicate」的「f」和我想抽出其中包括呼叫frobnicate文本。 (也就是說,一切都交給第三右括號我當然可以這樣做:。

 
y3f) 

 
vf);;y 

,但這些都不是吸引做交互(我不想必須手動計算'3',也不要重複查找,直到我達到終點。)是否有一種簡單的方法可以完成從'f'到匹配關閉paren的移動?我正在考慮像v_i'內部詞語'動作命令。

回答

9

y%似乎工作。

help %

查找該行的下一個項目 後或光標下並跳轉到其 匹配。包容性議案。項目可以 是:([{}])括號或 (花/方)括號

+0

我終於明白爲什麼看起來%爲右一個匹配的支架!我一直對%感到惱火,並希望它向左移動以找到匹配的大括號,snice通常將光標放在一對大括號內,並希望移動到最後,但這顯然是更好的行爲。 – 2010-12-21 13:55:36

+0

@William Pursell:你可以使用`[{`或`[(`向左(向上)移動以找到左括號或右括號) – 2010-12-21 14:15:10

0

你可以嘗試yel%將光標定位到左括號,然後跳轉到關閉一個與%,但它並沒有看起來更比您當前的解決方案高效。

唯一的優點是你不必計算任何東西,它可以與嵌套調用一起工作。

編輯: 由彼得指出,y%的作品,是一個出色的解決方案(即使我不明白爲什麼它工作的Vim是驚人的!)