2012-03-01 7 views
7

как вызвать функцию из строки-заменителя в vim? Когда у меня есть:Функция вызова vim для группы в строке-заменителе

%s/regex/string/g и я хочу группу в качестве аргумента и заменить его с возвращаемым значением функции:

%s/regex/call function(\1)/g поэтому группа # 1 будет аргумент функции, а возвращаемое значение функция заменит все совпадения в буфере.

Возможно ли это?

ответ

9

Чтобы использовать vimscript выражение вам нужно добавить \= к вашей строке замены:

%s/regex/\= function(submatch(1))/g 
+1

Его не хорошо, это просто вставляет '= функция (1)' в нем – microo8

+0

@ microo8 Спасибо за ваш комментарий. Я добавил отсутствующий вызов 'submatch', чтобы получить' \ 1'. – jcollado

+0

Обратите внимание на '': h sub-replace-expression'' для получения более подробной информации. –

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

  • Нет связанных вопросов^_^