如何更改 vim 显示那些 collapsed/folded 行的方式
How to change the way that vim display those collapsed/folded lines
让vim-collapse/fold更漂亮
如何更改 vim 显示那些 collapsed/folded 行的方式(在行尾而不是行头显示隐藏的行号)。我用谷歌搜索并找到了 vim wiki,但没有找到任何提示。
请看图[更漂亮vim折叠格式]
折叠方式如右图
您可以设置您的功能来设置折叠文本
尝试这样的事情:
function! MyFoldText()
let nblines = v:foldend - v:foldstart + 1
let w = winwidth(0) - &foldcolumn - (&number ? 8 : 0)
let line = getline(v:foldstart)
let comment = substitute(line, '/\*\|\*/\|{{{\d\=', '', 'g')
let expansionString = repeat(".", w - strwidth(nblines.comment.'"'))
let txt = '"' . comment . expansionString . nblines
return txt
endfunction
set foldtext=MyFoldText()
v:foldend
折叠中最后一行的行号
v:foldstart
折叠首行的行号
nblines
通过 diff 计算并加 1
然后注释被提取删除标记,应该使用语法的注释符号和所选的折叠标记进行改进。
expansionString
是根据winwidth计算的
您可以在此处找到文档:
http://vimdoc.sourceforge.net/htmldoc/fold.html#fold-foldtext
让vim-collapse/fold更漂亮
如何更改 vim 显示那些 collapsed/folded 行的方式(在行尾而不是行头显示隐藏的行号)。我用谷歌搜索并找到了 vim wiki,但没有找到任何提示。
请看图[更漂亮vim折叠格式]
折叠方式如右图
您可以设置您的功能来设置折叠文本
尝试这样的事情:
function! MyFoldText()
let nblines = v:foldend - v:foldstart + 1
let w = winwidth(0) - &foldcolumn - (&number ? 8 : 0)
let line = getline(v:foldstart)
let comment = substitute(line, '/\*\|\*/\|{{{\d\=', '', 'g')
let expansionString = repeat(".", w - strwidth(nblines.comment.'"'))
let txt = '"' . comment . expansionString . nblines
return txt
endfunction
set foldtext=MyFoldText()
v:foldend
折叠中最后一行的行号
v:foldstart
折叠首行的行号
nblines
通过 diff 计算并加 1
然后注释被提取删除标记,应该使用语法的注释符号和所选的折叠标记进行改进。
expansionString
是根据winwidth计算的
您可以在此处找到文档: http://vimdoc.sourceforge.net/htmldoc/fold.html#fold-foldtext