Postanawiam dowiedzieć się więcej o vimie i jego podświetlaniu składni. Korzystając z przykładów dla innych, tworzę własny plik składni dla Markdown. Widziałem mkd.vim i ma również ten problem. Mój problem dotyczy między elementami list a podświetlaniem bloku kodu.Podświetlanie znacznika Vim (elementy listy i konflikty bloku kodu)
kod blokowy definition:
- pierwsza linia jest puste
- druga linia zaczyna się co najmniej 4 przestrzenie lub 1 zaciskiem
- bloku wykończony pusty linii
Przykład:
Regular text
this is code, monospaced and left untouched by markdown
another line of code
Regular Text
moją składnię Vima dla bloku kodu:
syn match mkdCodeBlock /\(\s\{4,}\|\t\{1,}\).*\n/ contained nextgroup=mkdCodeBlock
hi link mkdCodeBlock comment
Unorder przedmiot definition:
- pierwsza linia jest puste
- druga linia zaczyna się od [- + *] a następnie po spacji
- lista kończy się pustą linią, a następnie normalną (nie-listową) linią między wierszami można dodać dowolną liczbę pustych wierszy.
- lista sub określa wcięć (4 przestrzeń lub kartę 1)
- linia zwykłego tekstu po element listy jest to jako przedłużenie tego elementu listy
przykład:
Regular text
- item 1
- sub item 1
- sub item 2
- item 2
this is part of item 2
so is this
- item 3, still in the same list
- sub item 1
- sub item 2
Regular text, list ends above
My Vim składnia definicji elementu listy unorder (I tylko podkreślić [-+*]
):
syn region mkdListItem start=/\s*[-*+]\s\+/ matchgroup=pdcListText end=".*" contained nextgroup=mkdListItem,mkdListSkipNL [email protected] skipnl
syn match mkdListSkipNL /\s*\n/ contained nextgroup=mkdListItem,mkdListSkipNL skipnl
hi link mkdListItem operator
nie mogę uzyskać doda ghting do pracy z dwiema ostatnimi regułami dla listy i blokiem kodu.
To jest przykład, że łamie mi podświetlanie składni:
Regular text
- Item 1
- Item 2
part of item 2
- these 2 line should be highlighted as a list item
- but they are highlighted as a code block
ja w tej chwili nie może dowiedzieć się, jak dostać się podświetlenie pracować tak, jak ma to zbyt
Zapomniałem dodać "globalna" reguła składni używana w obu regułach wymienionych poniżej. Ma to zapewnić, że zaczynają się od pustej linii.
syn match mkdBlankLine /^\s*\n/ nextgroup=mkdCodeBlock,mkdListItem transparent
Inna uwaga: Powinienem być bardziej jasne.W moim pliku składni, zasady Lista stawienia się przed Reguły blockquote
Cool. Sprawia, że w końcu chcę się nauczyć skryptów vim. :) – jop