Der Multiplikator für 1 oder mehr Übereinstimmungen lautet \+
: Sie haben den Backslash (oder den \v
Modifikator "sehr magisch") vergessen . Die Verwendung \ze
am Ende ist überflüssig. ^
Übereinstimmungen an jedem Zeilenanfang \n
, beginnend mit der zweiten Zeile. Bitte beachten Sie, dass Vim einen speziellen Dialekt für reguläre Ausdrücke verwendet, sodass verschiedene Websites möglicherweise Anpassungen erfordern. Die :help pattern
Seiten sind die beste und maßgebliche Referenz.
syn match header /^#\+\zs.*/
Außerdem kann Ihr Syntaxzusatz durch vorhandene Syntaxregeln verdeckt werden. Sie können das Anhängen versuchen containedin=ALL
, dies ist jedoch keine allgemeine Lösung. Möglicherweise müssen Sie die vorhandene Syntax analysieren und für jede Syntax eine spezielle Lösung erstellen. Alternativ können Sie den :match
Befehl verwenden. Dies funktioniert über (und unabhängig) der Syntaxhervorhebung. Der Nachteil ist, dass dies fensterlokal ist. Sie benötigen also :autocmd
Magie, wenn Sie dies nur auf bestimmte Puffer oder auch auf Fensterteilungen anwenden möchten.
match header /^#\+\zs.*/
Stilkritik
Mit Ihrer au BufRead,BufNewFile *.txt syn match
, Ihrer Vermischung verschiedener Aspekte: Erkennung des Dateityps (Zuordnung von *.txt
(hier: implizitem) Dateityp), Anpassung der Datentypen, Hervorhebung der Syntax. Es wäre sauberer (und erweiterbarer), die Dinge voneinander zu trennen:
- Definieren Sie eine
text
Datei des Typs:au BufRead,BufNewFile *.txt setf text
. Diese Erkennung ist möglicherweise bereits in Ihrer Vim-Version vorhanden. - Definieren Sie die Hervorhebung (oder Erweiterung) der Syntax in
~/.vim/syntax/text.vim
(oder~/.vim/after/syntax/text.vim
erweitern Sie eine vorhandene Syntax).