내가 자주 하는 일은 파일 상단의 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/ {$/;/
지금 이 줄이 필요합니다.