В vim, как мне заменить шаблон регулярного выражения на пробел? - PullRequest
2 голосов
/ 23 мая 2011

В моем конкретном случае у меня есть

(function(){

, и я хочу заменить его на

<whitespace char>xxx<whitespace char>

, чтобы оно перешло из

$('#myId').click(function(){do_something()})

в

$('#myId').click xxx do_something()})

Я пытался

:s%/(function(){/ xxx /g  

, но выдает ошибку, выдает ошибку 'E486: Pattern not found', хотя я могу найти только / (function () {/.Также не помогает попытка добавить \ s к тексту замены.

(извините за странное форматирование этого вопроса. На самом деле не очень хорошо)

Ответы [ 3 ]

5 голосов
/ 23 мая 2011

транспонировал s и%

:s%/(function(){/ xxx /g  

должно стать

:%s/(function(){/ xxx /g  

Я пробовал, и это работает для меня.

прежний возвращает E486: Шаблон ненайдено: / (function () {/ xxx / g

3 голосов
/ 23 мая 2011

Ваша единственная проблема в том, что это должно быть :%s, а не :s%.

:% определяет весь файл как диапазон для следующей команды Ex.

:s% означает использование «%» в качестве символа разделителя регулярных выражений (вместо /). Таким образом, в вашем запросе вы не найдете "/ (function" в текущей строке.

1 голос
/ 23 мая 2011

Вы должны экранировать некоторые символы

:s%/\(function\(\)\{/ xxx /g  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...