2014-12-17 4 views
0

Что я хотел бы сделать:Vim - Как искать и reaplace на основе поиска

Каждый раз, когда я нахожу что-то основанное на s[w|l].*[0-9]\.\* заменить конец этой строки \ поиска * с %s/\.\*/\\\\\.\.\*/g

Уже попробовал. со стандартным поиском и заменой, но не смог этого сделать.

Благодаря

+1

Я не следую. Просьба пояснить и привести пример (текст и ожидаемая замена). –

+0

Я хотел бы заменить конец этого поиска srting "slcassdsap01. *" С \\. * – user3329334

+0

Итак, поверните 'slcassdsap01FOO' в' slcassdsap01 \ FOO' ?! –

ответ

0

Просто обернуть шаблон поиска в уцелевших скобках \(\) и использовать обратную ссылку \1 в строке замены:

:%s/\(s[w|l].*[0-9]\)\.\*/\1\\\\.*/g 

Вы можете иметь несколько \(\) подвыражения в строке поиска, и может использовать их как в самой строке поиска, так и в строке замены через \1, \2, .... Подвыражения просто нумеруются по порядку появления в строке поиска.