对于"标准"JavaScript,我有一个我非常喜欢的自定义折叠功能:
function! JavaScriptFold()
setl foldmethod=syntax
setl foldlevelstart=1
set fillchars=fold:
syn region foldBraces start=/{/ end=/}/ transparent fold keepend extend
function! FoldText()
return substitute(getline(v:foldstart), '{.*', '{...}', '')
endfunction
setl foldtext=FoldText()
endfunction
一个善良的灵魂能给我看一个CoffeeScript的翻译吗?所以
testFunction = (x) ->
x + x
会像这样折叠成第一行只有
testFunction = (x) ->
折叠文字对象也有加分,但功能已经很棒了!
附言:当然,我正在使用Vim 的咖啡脚本插件
由于我不知道cofeee,也不知道它支持什么文本对象,所以我对此无能为力。不管你想要什么,都可以通过这个设置来实现(可以转换为模型线):
:setl fdm=expr fde=getline(v:lnum)=~'->$'?'>1':getline(v:lnum)=~'^\s*$'?0:'='
你没有指定要在折叠上显示什么,所以我省略了这个。您可以使用文件夹文本设置。请参见:h fold-foldtext
。