2009-08-07 7 views
2

Ich habe alle Symbole hervorgehoben, indem Sie die Datei & Markierung Option verwenden.In VIM: Wie "lokale Variablen" in einer "C" Datei markiert werden

Aber ich konnte meine lokalen Variablen nicht hervorheben.

Ich habe eine Idee, das heißt, VIM unterstützt bereits Autovervollständigung von Schlüsselwörtern für eine aktuelle Datei, es Vervollständigung der lokalen Variablen, also, wenn ich eine Liste der Schlüsselwörter für meine aktuelle Datei dann werde ich diese Schlüsselwörter markieren mit dem Befehl "highlight" vim.

Aber Probleme ist, ich weiß nicht, wie man eine Liste der Schlüsselwörter für eine aktuelle Datei erhält.

+0

Können Sie ein Beispiel für das Problem geben? Vielleicht bin ich dicht, aber ich verstehe es wirklich nicht. – innaM

Antwort

1

Sie können erkannte Namen mithilfe der Tag-Datei hervorheben, solange die Tag-Datei mit der --c-kinds=+l generiert wird, um sicherzustellen, dass sie lokale Variablen enthält. Allerdings gibt es derzeit keine realistische Weise den Umfang dieser Variablen zu identifizieren (ctags nicht viele Informationen liefern), daher Vim nicht zwischen Variablen in einer Funktion unterscheiden und eine anderen:

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

} 

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

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

Es könnte durch Parsing getan werden die C-Datei in ein wenig mehr Details und Erstellen von Syntax-Regionen für jede Funktion, aber es ist alles andere als leicht (und es wäre inkompatibel mit Plugins wie rainbow.vim, da Vim überlappende Regionen nicht unterstützt).

Zu einem verwandten Hinweis, könnten Sie auch interessiert sein, in meinem Tag Hervorhebung Plugin available here. Es wird lokale Variablen hervorheben (wenn b:TypesFileIncludeLocals auf 1 in dem Puffer festgelegt wird, der geöffnet wird, wenn :UpdateTypesFile ausgeführt wird), aber es behandelt nicht den Bereich der lokalen Variablen. Es bietet jedoch viel mehr Hervorhebung Farbvariationen als die Hervorhebung in vorgeschlagen. Beachten Sie, dass Ihr Farbschema Highlights für viele zusätzliche Gruppen (z. B. GlobalVariable, LocalVariable, DefinedName usw.) definiert haben muss, um die Vorteile voll auszunutzen.