Gvim折叠系统verilog关键字对

时间:2013-03-01 23:38:28

标签: editor system-verilog vim

如何在Gvim中启用系统verilog关键字折叠? 例如

function
   Code
   ....
   ....
endfunction

我希望Gvim能够创建从功能到功能的折叠。我该怎么做?

1 个答案:

答案 0 :(得分:4)

这是一个自定义的foldexpression,可以做你想要的。它在每个“函数”后面的行上开始折叠,并在每个“endfunction”之前的行上结束,否则继承前一行的foldlevel。

function! VimFunctionFoldExpr()
    if getline(v:lnum-1) =~ '^\s*function'
        return '>1'
    elseif getline(v:lnum+1) =~ '^\s*endfunction'
        return '<1'
    else
        return '='
    endif
endfunction

要告诉Vim使用此功能,请设置以下内容:

set foldmethod=expr
set foldexpr=VimFunctionFoldExpr()

您可能还想调整foldtext设置,使其尊重意图级别。 Here是关于如何做到这一点的SE问题。