我在 VIM 中使用Taglist,但是我继承的一个特定 PHP 应用程序是用 if() 和 elseif() 和 include() 广泛编码的。每个文件(以及数十或数百个文件)的近 5000 行代码中没有一个方法或函数。有什么方法可以使用 Taglist 或其他插件来概览代码流?我正在考虑在侧边栏中以简洁的方式显示 if() 中的条件,包括它们的层次结构。任何与此相近的东西都会很棒。
谢谢!
这涉及一些工作,您需要使用修改后的 php 规则编译 exuberant ctags 的修改版本。
将foldlist 插件与foldmethod-syntax
(或调整您自己的foldmethod-expr
)一起使用会很好。
事实上,即使没有插件,我相信适当的折叠设置也会创造奇迹。一些建议:
set foldmethod=syntax
或(set foldmethod=expr
对于set foldexpr=...
您的情况)set foldclose=all
隐藏所有那些讨厌的如果set foldcolumn=2
或更大以查看嵌套级别set foldtext=MyFoldText()
并制作一个向您显示相关信息的功能,像:
function! MyFoldText()
let line = getline(v:foldstart)
let line = substitute(line, 'if(\(.*\)).*', 'if: \1', 'g')
" ... etc
return line
endfunction