2009-03-18 6 views
17

vim + ctags은 함수 오버로드를 허용하지 않으므로 일반적으로 기본 유효 범위 지정 기능으로 인해 심볼의 수동 접두사를 권장하기 때문에 C 프로젝트에서는 잘 작동합니다.vim, ctags 및 동일한 이름의 식별자

C++에서 함수는 자주 오버로드되고 하위 클래스에서 재정의됩니다. 이것은 vim이 항상 "Ctrl + ]"에 잘못된 클래스의 태그로 점프하게 만듭니다. 조금 더 지능적으로 행동하게하는 방법이 있습니까? 태그 대안을 가진 목록을 가져올 수 있다는 것을 알고 있지만,이 목록을 가져 와서 정의로 건너 뛰고 싶을 때마다 번호로 필요한 태그를 찾아야한다는 것은 대단히 성가신 일입니다.

+0

이 문제에 대한 유용한 솔루션을보고 싶어요. 나는 Viemu를 점점 더 많이 사용하지만 VC가 아닌 프로젝트로 전환하면 여전히 영향을받습니다. – RedBlueThing

+0

큰 질문입니다.이 답변도 알고 싶습니다. – Dan

답변

12

다음 태그로 이동 또한 "tagNext"이 (또는 : TN < > 입력)

6

내가 당신 porblem에 대한 두 가지 해결 방법을 알고있다 (당신은 너무 그것을 알고 보인다) :

  • 사용 : 일치하는 태그의 목록을 얻으려면 태그에 커서가있는 tselect와 태그 이름 또는 g]를 사용하고 목록에서 번호로 태그로 이동하십시오.
  • 지도 : 단축키에 tnext 또는 : tprev (필자는 F6과 F7에 매핑했습니다) 필요한 기능을 수동으로 찾으십시오.
5
당신은

등 당신이 클래스 이름 또는 '필드', '기능', '생성자'와 같은 특수 태그의 일부 문자를 입력하여 필요한 태그를 선택하는 데 도움이됩니다 내 스크립트를 사용할 수

http://www.vim.org/scripts/script.php?script_id=2507

8

나는 tjump을 많이 사용합니다. 도움이되는 탭 완성을 지원합니다. 여러 개의 태그가있는 경우 선택할 수있는 목록을 제공하며, 하나만 발견되면 태그 바로 오른쪽으로 이동합니다 (tselect과는 다른).

사용법 :

:tj foo 
관련 문제