Как получить вызов функции в vim? - PullRequest
3 голосов
/ 21 декабря 2010

Предположим, строка текста гласит:

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

Курсор находится на 'f' слова 'frobnicate', и я хочу восстановить текст, который включает в себя вызов frobnicate.(То есть все до 3-й закрывающей скобки. Я, конечно, могу сделать:

y3f)

или сделать это в интерактивном режиме с

vf);;y

, но ни один из них не является привлекательным. (Я неЯ не хочу подсчитывать «3» вручную и повторять поиск до тех пор, пока я не достигну конечной точки.) Есть ли простой способ выполнить переход от «f» к соответствующему закрывающему элементу?как команда движения v_i «внутреннее слово».

Ответы [ 2 ]

10 голосов
/ 21 декабря 2010

y%, кажется, работает.

С help %:

Найдите следующий элемент в этой строке после или под курсором и перейдите к его совпадению.инклюзивное движение.Элементы могут быть: ([{}]) скобки или (фигурные / квадратные) скобки

0 голосов
/ 21 декабря 2010

Вы можете попробовать yel%, чтобы поместить курсор в открывающие скобки, а затем перейти к закрывающей с помощью %, но это выглядит не намного эффективнее, чем ваше текущее решение.

Единственное преимущество в том, что вам не нужно ничего считать, и это работает с вложенным вызовом.

Редактировать: как указал Питер, y% работает и является превосходным решением (даже если я не совсем понимаю, почему это работает. Vim потрясающий!)

...