모든 함수 선언 추출

모든 함수 선언 추출

내가 자주 하는 일은 파일 상단의 C 코드에 모든 함수에 대한 프로토타입이 있는지 확인하는 것입니다. vi/vim을 사용하여 .c 파일의 모든 함수 선언을 빠르게 선택하여 꺼내어 파일 상단에 붙여넣을 수 있는 방법이 있습니까?

인라인 매개변수와 함께 한 줄짜리 함수 선언을 사용하므로 각 선언은 항상 한 줄입니다.

답변1

첫 번째 함수 위에서 시작하고 여는 중괄호로 점프를 사용하세요 ]M. 이제 ]}]M( ]}= 닫는 중괄호를 사용한 다음 다시) 를 사용하여 다음으로 이동할 수 있습니다. ]M이는 약간 장황하므로 f 키에 매핑합니다.

:nmap <F9> ]}]M

"골디락스"를 사용하는 경우스타일 들여쓰기,예를 들어:

void foo (int bar) {

이렇게 하면 서명과 동일한 줄로 이동하게 됩니다. 즉, 서명이 모두 같은 줄에 있다고 가정합니다. 약간 어리석지만 더 일반적인 K&R, Allman 또는 GNU 스타일을 사용하는 경우 실제로 원하는 경우 한 줄만 남게 됩니다.

:nmap <F9> ]}]Mk

k한 줄 위로 이동합니다. 명명된 버퍼로 행을 가져오는 첫 번째 함수에서는 "p"를 프로토타입으로 사용하므로 "pyy(( yy"행 가져오기"를 나타냄)을 사용합니다. 원하는 후속 기능에서추가의이름을 대문자로 시작하여 이 버퍼에 추가합니다: "Pyy.

모든 서명이 한 줄에 있다고 확신하는 경우 기능 키 nmap에 추가할 수 있습니다.

:nmap <F9> ]}]Mk"Pyy

그렇지 않은 경우 별도의 키에 매핑하고 진행하면서 두뇌를 적절하게 사용할 수 있습니다. 주의 깊게 관찰하고 여러 줄 기호를 수동으로 붙여넣어야 합니다.

이 모든 것이 있으면 해당 버퍼를 붙여넣을 수 있습니다 "pp. 두 번째 p는 "버퍼 붙여넣기"를 의미합니다. Goldilocks 스타일을 사용하는 경우 :s/ {$/;/지금 이 줄이 필요합니다.

관련 정보