При рефакторинге кода было бы полезно поменять аргументы функций.
Изменение, например:
func(foo[0], bar(), baz.spam)
в
func(baz.spam, foo[0], bar())
Есть ли способ поменять местами аргументы влево / вправо, оставив в скобках функции и запятые?
Обратите внимание, что это может стать довольно сложным, если вы хотите учесть аргументы, которые сами по себе являются вызовами функций, со своими собственными аргументами - например: func(baz->spam, foo[0], bar(a, b, c))
- поддержка этих случаев, вероятно, потребует некоторого более полного анализа
cia
«изменить аргумент». ❤️Я представляю 3 метода. Первые два являются частными случаями, которые требуют меньше нажатий клавиш. Последний является общим.
|
представляет позицию курсора.Поменяйте местами соседние аргументы (не работает для последних двух)
шаги:
dW
удалить текущее слово (аргумент)W
перейти к первому символу следующего аргументаP
вставить перед курсоромПоменяйте местами два последних аргумента
шаги:
dt,
удалить до следующей запятойE
перейти к последнему символу следующего аргументаP
вставить перед курсоромПоменяйте местами любые два аргумента
шаги:
vt,d
визуально удалить до запятойW
несколько раз, пока вы не достигнете аргумента, с которым хотите обменятьсяgP
вставить перед курсором и поместить курсор на символ после вставленного содержимогоdt,
удалить до следующей запятой. заменить,
,)
если это последний аргумент`<
вернуться к началу последней визуальной области (курсор будет помещен на запятую)P
вставить перед курсоромРедактировать: как указано @ aharris88, ОП хочет, чтобы последний аргумент был первым и переместил все остальные правильно.
Поверните аргументы вправо
шаги:
dw
удалять,␣
dt)
удалить последний аргумент%p
перейти к открывающим скобкам и вставить последний аргументa,␣
введите запятую и пробел<Esc>
вернуться в нормальный режимИли, если вы не хотите выходить из обычного режима:
"rdw
удалить,␣
в регистрr
dt)
удалить последний аргумент%p
перейти к открывающим скобкам и вставить последний аргумент"rp
вставить содержимое реестраr
Бонус: GIF для каждого случая: swap1 , swap2 , swap3 и rotate
источник