2015-09-10 2 views
0

Поэтому у меня есть несколько строк в моем коде с этой схемой:Как использовать vime regex, чтобы сделать эту замену?

has_many :kites, dependent: :destroy 

Я хочу использовать регулярное выражение в Vim, чтобы сделать замену, таким образом, что выше становится:

it { should have_many(:kites) } 

Это регулярное выражение I 'm using (обратите внимание, что 22s - номер строки, на которой нужно сделать замену), но я получаю «шаблон не найден».

:22s/\s.*has_many (:[a-z]*),.*/it { should have_many(\1) }/g 

Почему это не подходит?

ответ

3

Ваши круглые скобки берутся буквально. Чтобы сделать их захваченной группировкой, вам нужно сбежать от них.

... Если вы не хотите использовать «магический» режим Vim. См. :h /magic.

+0

Спасибо Я просто понял, что я не убегал их с «\». – Nona

2

Нужно сделать что-то вроде этого с обратными косыми чертами, чтобы избежать скобок:

:22s/\s.*has_many \(:[a-z]*\),.*/it { should have_many(\1) }/g 
Смежные вопросы