Wie kann ich eine Syntax definieren, um den Python-Klassennamen MyClass
in vim hervorzuheben ?
class MyClass(object):
......
Vim hat den Klassennamen bereits hervorgehoben. Es wird jedoch anscheinend auf die gleiche Weise mit dem Funktionsnamen hervorgehoben. Kann ich die beiden Kategorien besser hervorheben?
Ist es ein richtiger Weg über syn match ...
? In der Standardeinstellung habe syntax/python.vim
ich Folgendes gefunden:
syn match pythonFunction "\h\w*" display contained
Ich habe es versucht, aber meine syn
Definition muss falsch sein, es funktioniert nicht.
syn match pythonClassName "^class \(*\):" display contained
call HI('pythonClassName', 124, '', 'bold', 'bold')
HI()
ist eine selbst definierte Funktion, die ich zum pythonStatement
erfolgreichen Ändern verwendet habe .
Tatsächlich weiß ich nicht, was es wirklich tut. Es ist nur ein Versuch. Könnte mir jemand ein paar Tipps geben? Vielen Dank!
syntax on
in Ihrem vimrc zu verwenden. Wenn es hervorgehoben ist, Sie aber die Hervorhebung ändern möchten,:h mysyntaxfile-add
erfahren Sie, wie Sie die aktuelle Syntax-Hervorhebungsdatei überschreiben. In jedem Fall sollten Sie genauer wissen, was Sie bereits versucht haben (welcher Befehl, in welcher Datei usw.).Antworten:
Mit können
:echo synIDattr(synID(line('.'), col('.'), 1), 'name')
wir den Namen der Syntaxgruppe erhalten, was in der Tat so istpythonFunction
.Wenn
/usr/share/vim/vim80/syntax/python.vim
wir uns das ansehen, sehen wir, dass dies hervorgehoben wird durch:Es gibt keine Möglichkeit, Klassen separat hervorzuheben. Wenn Sie dies hinzufügen möchten, können Sie Folgendes verwenden:
Ich habe Dunkelgrün verwendet, weil Ruby dies verwendet, aber Sie können jede Farbe verwenden, die Sie mögen. Sie können das
class
Schlüsselwort beliebig markieren .Damit dies nach der integrierten Python-Syntaxdatei geladen wird, fügen Sie dies hinzu
~/.vim/after/syntax/python.vim
.Siehe auch: Korrigieren der fehlenden Syntaxhervorhebung für Python für eine allgemeine Einführung in die Syntaxhervorhebung und einige weitere Details.
quelle
X_train
Inself.X_train
auf dieselbe Weise hervorgehoben, was nicht erwartet wird. Könnte es möglich sein, nur die Hervorhebung des Klassennamens zu ändern?pythonAttribute
.E28: No such highlight group name: pythonAttribute
. Könnten Sie es noch einmal testen?highlight
eher vom Befehl als vomsyntax
Befehl herrührt. Sind Sie sicher, dass dieser Code diesen Fehler ausgibt? Oder ist es ein anderes Skript?