Это регулярное выражение будет делать это для примера:
:s/\vcall ("[^"]+"|[^,]+)\s*,\s*("[^"]+"|[^,]+)/call \2, \1/
Это регулярное выражение нужно будет становиться все более противным, если вы избежали кавычки и такие вещи в одном из ваших параметров.
На самом деле, я просто выделил один параметр (в визуальном режиме), нажмите d
, выделите другой параметр и нажмите p
; Vim красиво вставляет то, что находится в реестре, перезаписывает то, что вы выделили, и свопите удаленный текст в регистр. Затем переместите курсор и снова нажмите p
. Выделение, d
, выделить, p
, переместить курсор, p
- это обычная комбинация, по крайней мере, в моей области.
Так с курсором в начале строки, первый пример:
wva"dlvawpF,P
Значение двигаться мимо слово «позвонить» (w
), выделить строку в кавычках (va"
), удалите его (d
) , переместите одно пространство вправо (l
), выделите слово (vaw
), вставьте (p
), переместитесь назад в запятую (F,
), вставьте перед ним (P
).
Второй пример:
wva"dlva"p_f,P
Это не трудно, как только вы привыкнете к командам движения.
Разделяет его только через запятую? и только одна запятая в каждой строке? – nightingale2k1
параметры всегда разделяются запятой, но в строковых прамах иногда могут быть запятые. –
:% s: call \ (". *" \), \ (. * \): Call \ 2, \ 1: g – nightingale2k1