自定义折叠行文本

vim默认的折叠文本很丑有木有,看腻了有木有,想有自己的范有木有有木有,反正我有中么办?

可以通过foldtext选项做到,每次vim折叠文本时都会调用foldtext指定的函数,所以写个折叠函数就好楼,

抛砖引玉,我的范:

1 fun! My_foldtext()"{{{
2     let text = substitute(foldtext(), '^+--.\+:\s', '', '')
3     let text = printf('-+- %d(lev.%d) lines: %s ...', v:foldend-v:foldstart, v:foldlevel-1, text)
4     let indent_count = strdisplaywidth(matchstr(getline(v:foldstart), '^\s*'))
5     let text = repeat(' ', indent_count) . text
6     return text
7 endfun"}}}

文本会以 -+- <ln>(lev.<n>) lines: <context> ... 的形式出现,其中<ln>为折叠行数,<n>为折叠级别,<context>是被折叠文本的第一行,

这个设置还会保留被折叠文本第一行的缩进级别(前导空白),

最后表忘了set foldtext=My_foldtext()

posted @ 2013-05-13 18:45  reaper.spring  阅读(173)  评论(0编辑  收藏  举报