объединение: g с командами, которые принимают диапазон, работает для меня.например,
:g/^A/.,/^$/-1join
, как и ваша оригинальная версия:
:g/^A/.,/^$/-2s/\n/ /
NB. Если вы хотите краткости, то команда соединения может быть сокращена до j, поэтому первая версия становится:
:g/^A/.,/^$/-1j