Самый быстрый способ удалить аргумент функции в Vim - PullRequest
7 голосов
/ 17 января 2011

Если у меня есть следующий код:

foo->call(bar, baz->widget);

При наведении курсора на «b» в «baz» или на «w» в «widget», как быстро удалить аргумент у курсора?

foo->call(bar);

Это может быть любой аргумент (первый, последний или посередине).

Ответы [ 5 ]

10 голосов
/ 17 января 2011

С моим плагином omap-param , просто наберите di, или da,.

Это не будет беспокоить другие скобки. Например, в f(a+g(42, "string")), foobar), от "a" до "g", da, просто оставит foobar в вызове f.

6 голосов
/ 17 января 2011

Для первого аргумента эта комбинация клавиш переходит в открывающую скобку и удаляет все до следующей запятой, включая пробел после нее:

T(df,x

Для серединыВ качестве аргумента эта комбинация клавиш переходит к предыдущей запятой и удаляет ее и все до следующей запятой:

F,dt,

Для последнего аргумента эта комбинация клавиш переходит к предыдущейзапятая, и удаляет его и все до закрывающей скобки:

F,dt)

- или -

Вы можете написать свой собственный макрос, чтобы делать такие вещи,Подобный пример здесь .

2 голосов
/ 25 февраля 2015

target.vim - это дополнительный плагин, который предоставляет aa и ia (который также исправляет отсутствующее поведение встроенных текстовых объектов по умолчанию, сравните обсуждение на TextObjectify )

2 голосов
/ 25 декабря 2014

vim-argumentsmentive - это еще одна опция плагина, которая предоставляет a, и i, текстовые объекты и многое другое.

0 голосов
/ 11 января 2019

?, введите для перехода к предыдущему ','

d /, введите для удаления к следующему ','

плагинов не требуется

вам может понадобитьсядля добавления условий поиска к номеру в случае параметров шаблона:

void foo (sometype a, some_template_type b, sometype c)

или вы можете нажать '.'сколько бы ни было разделений запятыми, от которых вы хотите избавиться.

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