vim을 사용하여 C/C++ 함수의 첫 번째 줄로 이동하는 방법은 무엇입니까?

vim을 사용하여 C/C++ 함수의 첫 번째 줄로 이동하는 방법은 무엇입니까?

C/C++ 소스 코드의 다양한 요소 사이를 이동할 수 있는 명령 세트가 있습니까 vim? 알아요. ctags하지만 이는 제한된 기능을 제공합니다.

예를 들어, C/C++ 함수의 첫 번째 줄로 점프하고 함수 내의 어느 줄에서나 반환하는 것이 가능합니까?

나는 코드를 검사하거나 소스 코드에서 텍스트/패턴을 검색할 때 현재 있는 기능을 찾기 위해 끊임없이 위로 스크롤합니다.

답변1

코드가 클래스의 메소드로 구성된 언어에서는[m메서드의 시작 부분으로 이동합니다. C++ 클래스에서는 문제가 없지만 C 또는 C++ 최상위 함수에서는 두 번째 가장 바깥쪽 블록의 시작 부분으로 이동합니다. 다른[{가장 바깥쪽 스탠드로 데려갈 것이다.

C와 유사한 구문을 사용하는 언어에서는 {함수 시작 부분에 한 줄로 구성된 파일 에서[[열 1의 이전 중괄호로 이동합니다.

~에 따르면Ctrl-O뒤로 물러나세요.

답변2

내가 아는 한 간단한 vim 명령을 사용하는 것은 불가능합니다.

vim 매뉴얼(:help 섹션)에서:

"]" 및 "[" 명령은 첫 번째 열의 "{" 또는 "}"에서 중지됩니다. 이는 C 프로그램에서 함수의 시작이나 끝을 찾는 데 유용합니다.

(...)

"{" 또는 "}"가 첫 번째 열에 없고 여전히 "[[" 및 "]]"를 사용하려는 경우 다음 매핑을 시도하십시오.

:map [[ ?{<CR>w99[{ :map ][ /}<CR>b99]} :map ]] j0[[%/{<CR> :map [] k$][%?}<CR>


코드 방향을 정하는 데 필요한 경우 접기 사용을 고려하세요. 예를 들어, 함수에서 키를 누르면 set foldmethod=syntax함수를 닫고 함수 이름을 볼 수 있으며, 함수를 반전하고 원래 있던 줄로 다시 이동할 수 있습니다.zCzO

또 다른 타겟팅 가능성은 플러그인을 사용하는 것입니다.탭바현재 기능이 강조 표시됩니다.

관련 정보