Что мне нужно изменить, чтобы заставить группы захвата работать в Vim?
Ответ 1
Один из способов исправить это - обеспечить, чтобы шаблон был заключен в скобки:
:%s/\(\w\)\(\w\w\)/\1y\2/g
Слегка короче (и, что еще лучше) использовать \v, что означает, что в шаблоне после него все символы ASCII, кроме '0'-'9', 'a'-'z', 'a'-'z' и '_' имеют особое значение:
Если вы не хотите скрывать группы захвата с помощью обратных косых черт (это то, что вы пропустили), добавьте \v, чтобы превратить движок регулярного выражения Vim в очень волшебный режим:
:%s/\v(\w)(\w\w)/\1y\2/g
Ответ 3
Вы также можете использовать этот шаблон, который короче: