2010-01-19 5 views
1

주어진 심볼에 여러 개의 태그가 존재할 때 Vim은 올바른 태그를 선택할 수 없다는 것을 발견했습니다. 항상 진실인지는 모르지만 적어도이 문제를 여러 번 만났습니다.vim의 멀티 태그 문제

두 개의 클래스가 있다고 가정 해 보겠습니다. 두 개의 서로 다른 cpp 파일에 클래스 A와 클래스 B가 있습니다. 둘 다 AddContext라는 공용 멤버 함수를 정의했습니다. 그런 다음 프로젝트의 소스 코드에있는 다른 곳에서 그것을 장소 x로, A의 인스턴스 인 Memeber 함수 AddContext라고합니다.

당신은 프로젝트에 대한 태그를 생성하고 x 위치로 이동하여 "AddContext"아래로 커서를 이동하고 마지막으로 ctr-을 누르십시오. 실망스럽게도 vim은 A :가 아닌 B : AddContext의 정의로 건너 뜁니다. : AddContext.

제가 생각하기에 문제를 해결할 수있는 좋은 빔 연습이 있습니까?

답변

2

사용

:tnext 
:tprevious 

또는

:tn 
:tp 

이 수동 방식으로 문제를 해결하는 데 도움이 될 것입니다. Ctags와 Vim은 컨텍스트를 이해하지 못합니다. 그래서 당신 스스로 결정해야합니다.

해당 명령을 매핑하면 문제를 해결하는 좋은 방법입니다.

0scan 플러그인을 사용해 볼 수도 있습니다. 보다 편리한 방법으로 원하는 장소를 선택할 수 있습니다. 기호 위에 커서를 놓고 0u을 누르십시오.

1

^]을 누르는 대신 g^]을 누르십시오. 커서 아래에 식별자에 대한 태그가 여러 개 있으면 메뉴가 표시되어 점프하려는 태그를 선택할 수 있습니다. 태그로 건너 뛰고 올바른 태그가 아닌 경우 :tselect (약자로 :ts)을 사용하여 마지막으로 태그를 추가 한 메뉴를 표시 할 수 있습니다.