наклонная черта влево замены энергии

Я пытаюсь извлечь только имя функции из объявления функции, используя сценарий энергии. Для тестирования целей я использую этот простой пример:

int func(int a);

В сценарии энергии я извлекаю имя функции этим:

:let a = substitute(getline(line('.')), ".*\(func\).*", "\1", "")

Но обратная ссылка не работает. Когда я повторяю переменную с

:echo a

это показывает целую линию, т.е. интервал func (интервал a);

Как извлечь только имя функции с bacreference или каким-либо другим методом?

Заранее спасибо!

3
nl ja de

1 ответы

В двойных кавычках нужно избежать наклонных черт влево. Любое использование одинарные кавычки ( '\1' ) или дважды все наклонные черты влево (" \\1 дюйм ).

Посмотрите <�закодируйте>: помогите expr-последовательности для деталей.

8
добавлено
Я подозреваю, что это имело бы место для выражения матча в дополнение к заменять выражению, таким образом, OP должен использовать одинарные кавычки повсюду в этом случае. Указанные последовательности всегда бросают меня для петли, но обычно в эти дни я использую двойные кавычки только, когда я должен поместить нажатия клавиш в последовательность, например, " \"
добавлено автор dash-tom-bang, источник
Да действительно. Для выражения матча также нужны одинарные кавычки.
добавлено автор Soumen, источник