2013-04-26 2 views
2

Vim은 훌륭한 편집기이며 많은 작업에 사용합니다.vim으로 코드를 이해하는 방법은 무엇입니까?

하지만 새 코드베이스 (아마도 거대한 코드베이스) 작업을 시작할 때, 코드베이스를 사용하여 코드가 어떻게 동작 하는지를 이해하는 데 익숙하지 않습니다. 예를 들어

, 나는 C++ 기능이 사용되는 경우보고 싶다면, 나는 모든 **/*.cpp 파일에서 해당 기능 :vimgrep:copen quickfix 윈도우가 해당 문자열의 ... 모든 경우에 점프 할 수 있습니다.

예. 이클립스 (C++ 메소드의 호출 계층 구조)는 문자열이 아니라 객체에 정의 된 C++ 메소드이므로 해당 함수의 사용법에 대한 정확한 표시를 얻을 수있다 (같은 이름을 가진 함수도 아니다). 다른 클래스에서 정의 됨).

그래서 질문은 vim을 코드 분석을위한 강력한 도구로 만드는 방법입니까?

Subquestions :

  • 이를 위해 설계된 정력 플러그인이 있습니까?
  • vim을 사용하여 코드를 분석하는 것이 맞습니까? 아마도 외부 도구 (예 : OpenGrok)가 작업을 수행 할 수 있습니까?

답변

7

Vim은 텍스트 편집기입니다. 당신이 원하는 것은 텍스트 편집과 Vim의 능력 밖에서 완전히 직각입니다.

그러나, 빔 프로젝트 내에서 탐색하는 ctagscscope 같은 외부 도구를 사용하여 꽤 좋다. tags 파일 및/또는 cscope.out 데이터베이스를 만든 경우 Vim은 "정의로 이동", "점프 사용"등의 명령을 사용할 수 있습니다. :ts[elect] foo, <C-]> 등의 함수 이름 등 ... 필요한 모든 정보는 :h ctags:h cscope에서 찾을 수 있습니다.

궁금하신 분은 GNU GLOBAL을 사용해보세요. cscope의 또 다른 전문가는 쉘에서 사용할 수있는 고유 한 TUI가 제공된다는 것입니다.

내가 알고있는 cscope (+ ctags) 인터페이스를 제공하는 유일한 플러그인의

는 당신이 시도하지만주의 할 수 TagBar 또는 TagList 같은 ctags 지향 플러그인의 무리가있다 C.

로 제한 될 것으로 보인다 CCTree입니다 , ctags은 정의로 제한되며, cscope도 사용 및 발신자를 수행 할 수 있습니다.

이러한 도구는 코드 인덱서이므로 코드를 "이해"하거나 IDE 도구와 같이 멀리 떨어져 있어도 안됩니다. 그러나 저는 Vim을 좋아합니다. 텍스트 편집기보다는 그 일에 더 적합한 도구를 사용하는 것이 좋습니다.

2

Netbeans에서 Vim으로 전환했을 때 나는 당신과 같은 느낌이었습니다. 나는 Netbeans 기능을 마우스 오른쪽 단추로 클릭하면 모든 기능 정의를보고 싶었어.면책 조항 : Ruby, Javascript를 주로 사용하고 때때로 PHP를 사용합니다.

ctags를 시도했지만 정확하지 않고 깨끗하지 않습니다. 나는 또한 플러그인 Tagbar와 Taglist와 함께 ctags를 사용하여 시도했다. Tagbar는 태그가있을 때 CPU와 메모리가 많이 필요하다는 생각에 조금 무거웠습니다. 태그 목록이 더 좋지만 가장 좋은 사용 사례는 태그 대신 긴 파일을 탐색하는 것입니다.

마지막으로 나는 ctags를 사용하지 않았습니다.

나중에 언어와 관련된 더 나은 솔루션이 있다는 것을 알았습니다. 예를 들어, Ruby의 경우 설치된 gem (libs) 내의 모든 기능에 대해 하나의 키만 표시하는 플러그인이 있습니다.

하지만 아직도 습관이 바뀌면서 자주 사용하지 않습니다. 나는 물건이 엎드려서, 적당한 곳에 있고, 빠르 길 좋아합니다. 빔과 함께 TMUX 사용

  1. :

    은 이제하여 편안한 느낌. 필요한 경우 doc을 확인하고 콘솔에서 코드를 확인하십시오.

  2. 자주 사용하는 코드, 메소드를 저장하려면 snippet 플러그인 (Neosnippet)을 사용하십시오. Vim의 스 니펫 관리는 내가 본 모든 IDE보다 훨씬 뛰어나고 유연합니다.
  3. 마우스를 덜 터치하면서 더 많이 저장하려면 두뇌를 사용하십시오.

이러한 도움이 필요합니다.

+0

"뇌"란 무엇입니까? – sica07

-1

fly.vim이라는 플러그인이 있습니다.이 플러그인은 소스 코드를 탐색하기에 매우 좋습니다. cscope 데이터베이스를 사용하고 간단한 탐색 메커니즘을 제공합니다. 중앙 위치에서 프로젝트의 cscope 및 ctags를 생성하고 유지하는 autotags 플러그인과 결합하면 쉽게 다른 코드 기반간에 전환 할 수 있습니다. Source Insight를 사용하여 Linux Kernel 소스 코드를 찾아 보았습니다.이 조합으로 전환했을 때 불평 할 것이 없었습니다. 이 설정으로 속도를 높이는 데 약간의 시간 및/또는 노력이 필요할 수 있습니다. ctags와 cscope의 작동 방식을 알고 있다면 아마도 1 시간 이내에 그것을 가져올 것입니다. 그러나 이점 : cscope는 코드를 빠르게 인덱싱합니다. vim은 cscope를 통해 fast, fly.vim 쿼리를 사용하여 빠르고 쉽게 사용할 수있는 형식으로 표시합니다. 또한 점프 기록을 유지합니다.

관련 문제