Ctags 또는 다른 외부 도구를 사용 하지 않고 코드베이스를 탐색하기 위해 명령 또는 검색 모드에서 Vim 명령 / 쿼리 도구 상자를 수집하려고 합니다. Ctag는 훌륭하지만 지원은 개발 환경에 따라 다를 수 있습니다. Vim 지식에 의존하고 싶습니다.
gd
입니다. 커서를 커서 아래 변수의 로컬 선언으로 가져갑니다.
Ctags 또는 다른 외부 도구를 사용 하지 않고 코드베이스를 탐색하기 위해 명령 또는 검색 모드에서 Vim 명령 / 쿼리 도구 상자를 수집하려고 합니다. Ctag는 훌륭하지만 지원은 개발 환경에 따라 다를 수 있습니다. Vim 지식에 의존하고 싶습니다.
gd
입니다. 커서를 커서 아래 변수의 로컬 선언으로 가져갑니다.
답변:
"검색 포함"은 그러한 도구 중 하나입니다.
[I and ]I " search current buffer and included files for
" the word under the cursor, skipping comments
:ilist foo " same as above but for 'foo'
:ilist /foo " same as above but for a word containing 'foo'
"검색 포함"과 관련하여 "정의 검색"도 흥미 롭습니다.
[D and ]D " search current buffer and included files for
" the definition of the symbol under the cursor
:dlist foo " same as above but for definition of 'foo'
:dlist /foo " same as above but for a definition containing 'foo'
:dlist / " list all definitions from the current buffer
" and included files
두 도구는 파일 유형 플러그인에 의해 설정되거나 설정되지 않을 수있는 다양한 옵션에 따라 다릅니다.
참조하십시오 :help include-search
.
당신은 또한 사용할 수 있습니다 gd
및 gD
경량 버전으로 [D
와 ]D
.
참조하십시오 :help gd
.
현재 버퍼에서 아래 명령은 모든 함수 정의와 해당 행 번호를 나열합니다.
:g/func/#
참조하십시오 :help :g
.
:grep
그리고 :vimgrep
그 결과로 탐색 할 수있는 quickfix 목록으로 만 공급되기 때문에 경우에도 유용 :cn
, :cp
... 그리고 매우 편리 quickfix 창에 표시됩니다.
를 참조하십시오 :help :grep
, :help :vimgrep
하고 :help quickfix
.
quickfix 목록 / 윈도우의 말하기, 내가 쓴 이 함수 의 결과 표시 (다른 사람의 작업을 기반으로)을 [I
, ]I
, :ilist
, [D
, ]D
및 :dlist
quickfix 목록에 / 창을여십시오. 물론 YMMV.
탐색 도구는 아니지만 미리보기 창은 내가 사용하는 기능의 서명을 보는 데 매우 유용합니다.
참조하십시오 :help preview-window
.
그것은 말했다…
Vim은 코딩 스타일 또는 기타에 맞지 않을 수도있는 몇 가지 정규식 패턴을 넘어서는 코드에 대해 아무것도 모릅니다. 이는 ctags, cscope 또는 GNU GLOBAL과 같은 외부 도구를 사용하여 코드 탐색이 더 잘 수행됨을 의미합니다.
Vim 및 외부에 포함 된 코드를 탐색하는 방법에는 여러 가지가 있지만 여전히 발견합니다. 내가 일상 업무에서 사용하는 것은 :
gf
-command입니다)Ctrl+O
, Ctrl+I
- 탐색의 "역사"에서 뒤로 또는 앞으로 이동g;
-파일에서 마지막으로 편집 한 위치로 이동'[some_letter]
문자가 대문자 인 경우 명령으로 마크를 배치 할 수 있으며 모든 파일 (버퍼)에서 도달 할 수있는 마크를 얻을 수 있습니다.