среда, 28 января 2009 г.

Еще пару слов о vim и фолдинге.

Написав предыдущую заметку, я решил проверить, а не проще-ли будет сделать фолдинг на основе синтаксиса? И проверил. :) Вот собственно новая функция:

function! LoadClipboardFile()
set number
syntax clear
syntax sync fromstart
set foldmethod=syntax
syntax region NoteFold start="---=====.\{-}=====---" end="---=====.\{-}=end=---" fold transparent
set foldtext=v:folddashes.substitute(getline(v:foldstart),'^---=====\\s\\\|\\s=====---$','','g')
set foldcolumn=3 "отступ от края
map <F2> :r!date '+\%F \%H:\%M \%S s'<CR>
imap <F2> <Esc><F2>
map <F4> o---===== <Esc>zo<F2>kJA =====---<CR>---===== <F2>kJA =end=---<Esc>k^/=====-<CR>h
endfunction


Теперь весь фолдинг обрабатывается по синтаксису. :) Мне так даже больше нравится...