2009-08-07 5 views
2

태그 파일 & 강조 옵션을 사용하여 모든 기호를 강조 표시했습니다.VIM : "C"파일에서 "로컬 변수"를 강조 표시하는 방법

그러나 로컬 변수를 강조 표시 할 수 없습니다.

VIM은 이미 현재 파일에 대한 자동 완성을 지원하지만 내 로컬 변수의 자동 완성을 지원하므로 현재 파일에 대한 키워드 목록을 얻으면 해당 키워드를 강조 표시합니다 "강조 표시"vim 명령을 사용합니다.

그러나 문제는 현재 파일의 키워드 목록을 가져 오는 방법입니다.

+0

문제의 예를 들려 줄 수 있습니까? 어쩌면 나는 밀도가 있지만 실제로 이해하지 못합니다. – innaM

답변

1

--c-kinds=+l 태그 파일이 생성되어 로컬 변수가 포함되도록하려면 태그 파일을 사용하여 인식 된 이름을 강조 표시 할 수 있습니다. 그러나 이러한 변수 (ctags를 많은 정보를 제공하지 않습니다) 따라서 빔이 하나의 기능과 다른 변수를 구분하지 않습니다의 범위를 식별하는 현실적인 방법은 현재 없습니다 :

void main(void) 
{ 
    int MyVariable; // Highlighted 

} 

int MyFunction(void) 
{ 
    int MyFunctionVariable; // Highlighted 

    MyVariable = 1; // Syntax error, but still highlighted 
} 

그것은 구문 분석을 수행 할 수 C 파일을 좀 더 자세하게 설명하고 각 함수의 구문 영역을 만드는 것은 쉽지 않습니다 (그리고 Vim은 겹치는 영역을 지원하지 않으므로 rainbow.vim과 같은 플러그인과 호환되지 않습니다).

관련 메모에서 내 태그 강조 플러그인 available here에 관심이있을 수 있습니다. 로컬 변수를 강조 표시합니다 (:UpdateTypesFile을 실행할 때 b:TypesFileIncludeLocals이 버퍼에 열린 1으로 설정된 경우). 그러나 로컬 변수의 범위는 처리하지 않습니다. 그러나 :help tag-highlight에서 제안 된 강조 표시보다 훨씬 더 많은 강조 표시 색상을 제공합니다. 많은 색의 추가 그룹 (예 : GlobalVariable, LocalVariable, DefinedName 등)에 대한 하이라이트가 색상 표에 정의되어 있어야합니다.

관련 문제