" setlocal syntax=markdown setlocal textwidth=80 setlocal spell syntax match jtag "@.\{-}\w\+" syntax match jyear /\[\d\{4}-\d\d-\d\d \d\d:\d\d:\d\{2\}\( [aApP][mM]\)\?\]/ syntax region entryLine start=/\d\{4}-\d\d-\d\d \d\d:\d\d/ end=/$/ contains=jyear highlight def link jtag Constant highlight def link jyear Identifier highlight def entryLine ctermfg=250 guifg=Gray setlocal foldmethod=expr setlocal foldexpr=JrnlFoldExpr() function! JrnlFoldExpr() let line = getline(v:lnum) " Если строка начинается с даты [YYYY-MM-DD HH:MM:SS AM/PM] if line =~ '^\[\d\{4}-\d\d-\d\d \d\d:\d\d:\d\{2\}\( [aApP][mM]\)\?\]' return ">1" " Открываем новую свёртку (уровень 1) endif " Если строка - это Weather, Geo, или другие элементы if line =~ '^-\s\+\w\+:' return "1" " Оставляем эти строки внутри текущей свёртки endif " Все остальные строки не участвуют в свёртке return "=" endfunction