Это делает это:
:%s/\v(\(.*)@<=[[:alnum:]]+(.*\))@=/"&"/g
Имейте в виду, что сопоставление вложенных шаблонов (например, в скобках) с регулярным выражением пойдет не так, если ввод будет неверным. Вышеприведенное не обрабатывает вложенные скобки вообще, а заключенные в кавычки или экранированные скобки также разбивают его. Обращаться с осторожностью.
гласит:
:%s substitute on all lines
/ matching
\v (with "very magic" switched on)
(\(.*)@<= a position that follows an opening paren, on this line
[[:alnum:]]+ a series of alphanumeric characters (i.e. "words")
(.*\))@= that are followed by a closing paren, on this line
/ replace with
"&" the match, in quotes
/g globally
Примечательно, что vim действительно поддерживает просмотр переменной длины. Большинство современных реализаций регулярных выражений этого не делают.