Не прямой ответ, но вы можете использовать что-то вроде: rubydo, который будет запускать несколько скриптов ruby для каждой строки кода. Объединение этого с gsub в ruby должно дать вам возможность делать что угодно в каждом случае совпадения. Конечно, вам нужно будет сделать это с помощью кода ruby, который может не дать вам доступа ко всему, что вам может понадобиться без хлопот (например, добавление в реестр будет раздражать)
:[range]rubyd[o] {cmd} Evaluate Ruby command {cmd} for each line in the
[range], with $_ being set to the text of each line in
turn, without a trailing <EOL>. Setting $_ will change
the text, but note that it is not possible to add or
delete lines using this command.
The default for [range] is the whole file: "1,$".