2012-12-28 1 views
3

vim 스크립트를 사용하여 함수 선언에서 함수 이름 만 추출하려고합니다. 정력 스크립트에서vim 대체 백 슬래시

int func(int a); 

내가 이것에 의해 함수 이름을 추출하고 있습니다 :

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

을하지만 역 참조가 작동하지 않습니다 는 테스트를 위해 나는이 간단한 예제를 사용하고 있습니다. 제가

:echo a 

와 변수 A 에코 경우는 전체 라인, 즉 표시 INT FUNC INT (a);

bacreference 또는 다른 방법을 사용하여 함수 이름 만 추출하는 방법은 무엇입니까?

미리 감사드립니다.

답변

8

큰 따옴표 안에는 백 슬래시를 이스케이프 처리해야합니다. 작은 따옴표 ('\1')를 사용하거나 모든 역 슬래시 ("\\1")를 두 번 사용하십시오.

자세한 내용은 :help expr-string을 참조하십시오.

+0

대체 표현식 외에도 일치 표현식에 해당하는 것으로 의심되므로 OP는이 경우 전체적으로 작은 따옴표를 사용해야합니다. 따옴표 붙은 문자열은 항상 루프에 대해 나를 던져주지만 요즘에는 키 입력을 문자열에 넣어야하는 경우에만 큰 따옴표를 사용합니다. ' "\ " –

+0

예. 일치 식에도 작은 따옴표가 필요합니다. – Soumen