Я бы обычно использовал внешний фильтр для такого рода вещей:
:%!perl -pe 's/width="(\d*)"/sprintf "width=\"\%d\"", 2 * $1/e'
Обратите внимание, что есть дополнительный escape, который не будет отображаться при непосредственном запуске perl. Вы должны экранировать знак%, иначе vim расширит его до текущего имени файла.
Но вы можете попробовать:
:help sub-replace-expression
, если вы не хотите использовать внешний фильтр.