2010-03-17 11 views
6

I zdefiniowano niestandardowy typ pliku z tych linii:Vim podświetlanie składni: make regionu pasuje tylko w jednej linii

syn region SubSubtitle start=+=+ end=+=+ 
highlight SubSubtitle ctermbg=black ctermfg=DarkGrey 

syn region Subtitle start=+==+ end=+==+ 
highlight Subtitle ctermbg=black ctermfg=DarkMagenta 

syn region Title start=+===+ end=+===+ 
highlight Title ctermbg=black ctermfg=yellow 

syn region MasterTitle start=+====+ end=+====+ 
highlight MasterTitle cterm=bold term=bold ctermbg=black ctermfg=LightBlue 

Załączam wszystkie moje pozycjami w tego rodzaju dokumencie tak:

==== Biggest Heading ==== // this will be bold and light blue 

    ===Sub heading === // this will be yellow 

    bla bla bla // this will be normally formatted 

Jednak teraz, kiedy używam znaku równości w moim kodzie, myśli on, że jest to tytuł. Czy jest tak, że mogę wymusić mecz tylko na jednej linii?

Odpowiedz

6

UPDATE: Moje poprzednie odpowiedź była zła, można to zrobić z regionu, po prostu zrób

syn region SubSubtitle start=+=+ end=+=+ oneline 

Zobacz :help syn-oneline i :help syn-arguments. Domyślam się, że nie mogę teraz uruchomić vima, prawda?


Poprzednia odpowiedź

Według mojego czytania :help syntax, nie ma sposobu, aby to zrobić z regionu. Jednakże, można zrobić to z syn-meczu:

syn match SubSubtitle /=\@<!=[^=]*==\@!/ 

/=\@<!/ mówi, że nie ma = bezpośrednio przed swoim meczu, a /=\@!/ mówi nie ma = zaraz po, więc ten pasuje dokładnie jeden =, grono non-= (bez nowych linii - aby dodać nowe linie musiałby to być \_[^=]), a dokładnie jeden =.

Reszta jest podobna

syn match Subtitle /=\@<!=\{2}[^=]*=\{2}=\@!/ 
syn match Title  /=\@<!=\{3}[^=]*=\{3}=\@!/ 
syn match MasterTitle /=\@<!=\{4}[^=]*=\{4}=\@!/ 

Nadal można zrobić mecze w ciągu SYN-meczów, więc jeśli masz jakieś zagnieżdżenie się dzieje, nadal będzie ona działać.

Na przykład

syn match Todo /\<TODO\>/ containedin=SubSubtitle,Subtitle,Title,MasterTitle contained 
+1

Awesome! Dzięki, wiedziałem, że widziałem to gdzieś podczas przeglądania pomocy vim, ale nigdy nie możesz znaleźć rzeczy, kiedy ich potrzebujesz. – sixtyfootersdude

Powiązane problemy