2016-04-21 3 views
0

Da so etwas wie:Wie markiere ich Text fett in einer bereits übereinstimmenden Region in VIM Syntaxhervorhebung?

Dies ist \ f Zufallstext \ b und mehr \ f * und dann etwas mehr.

  • Ich möchte \ f bis \ f * grau
  • Ich möchte die "Tags", wie fett machen (so sind sie grau, sondern auch fett geworden)

ich kann‘ t die Prioritäten richtig gesetzt werden, damit sowohl die Fett- als auch die Farbgebung erfolgt.

syn match footnoteEnd /\\f\*/ 
syn match footnoteStart /\\f/ 
syn match footnoteBTag /\\f/ 
syn region footnoteInfo start=/\\f/ end=/\\f\*/ 

hi def footnoteInfo guifg=grey 
hi def footnoteStart gui=bold 
hi def footnoteBTag gui=bold 
hi def footnoteEnd gui=bold 

Jede Hilfe würde sehr geschätzt werden.

Antwort

1

Sie können diese versuchen:

syn match footnoteDelimiter /\\f\*\?/ contained 
syn match footnoteBTag /\\b/ contained 
syn region footnoteInfo start=/\\f/ end=/\\f\*/ contains=footnoteDelimiter,footnoteBTag keepend 

hi def footnoteInfo guifg=grey 
hi def footnoteBTag gui=bold guifg=grey 
hi def footnoteDelimiter gui=bold guifg=grey 

Erläuterung:

  • Wenn Vim das Ende der Region erreicht, sie paßt footnoteStart wieder vor footnoteEnd und dann * wird nie fett. Deshalb schlage ich vor, stattdessen footnoteDelimiter zu verwenden.

  • Das Argument contained wurde zu footnoteDelimiter und footnoteBTag hinzugefügt, weil sie in einer Region vorkommen.

  • contains=footnoteDelimiter,footnoteBTag gibt an, welche Syntaxgruppen in der Region zulässig sind.

  • keepend lässt die Übereinstimmung eines Endmusters der äußeren Region auch jedes enthaltene Element enden.

+0

Ihre ehrfürchtige, danke für die Hilfe! – Jacob

Verwandte Themen