2009-10-27 3 views
26

В Vim У меня есть:Как я могу заменить скобку в Vim

simulación (fig.),pretexto (fig.),excusa (fig.). 

Моя цель:

simulación ,pretexto ,excusa . 

Я попытался с: :%s/\(fig\.\)//g, но он не работает.

+1

Ваша команда выглядит отлично. Выдает ли VIM сообщение об ошибке при запуске команды? – Marcin

+0

Это тоже работает для меня – ennuikiller

+1

Я вижу, что SO parser спрятал слэш, когда вы впервые задали вопрос, неудивительно, что мы были в замешательстве. – Marcin

ответ

43

Vim не требует экранирования кронштейнов по умолчанию. Попробуйте:

:%s/(fig\.)//g 

См:

:help magic 

Редактировать

Добавлена ​​обратная косая спасаясь от точки.

+1

Разве Vim не использует содержимое между скользящими скобками как группу, а затем выбрасывает его? В этом случае это значительное различие. –

+1

@Adriano: Это действительно так, и это было не то, что хотел @Jogusa. – DrAl

+0

Большое спасибо, он работает :-) Спасибо за второй отзыв. – Jogusa

3

На Vim 7.2 (WinXP) команда, которую вы использовали, удаляет только «fig.», Но не круглые скобки. Использование %s/(fig\.)//g дает предполагаемый результат.

Редактировать Снял точку, так как она соответствует любому символу, а не только точке.

6

Не избегайте использования parens-vim по умолчанию, используя «магическую» схему экранирования. Try:

:%s/(fig\.)//g 

Подробнее: http://vimdoc.sourceforge.net/htmldoc/pattern.html#/ \ v

+2

Это также будет соответствовать (figx), если вы не уйдете от точки (см. Редактирование моего и Адриано: мы все это сделали!). – DrAl

Смежные вопросы