我在VIM中使用Taglist,但我继承的一个特定的PHP应用程序用if()和elseif()以及include()进行了广泛的编码。每个文件(以及数十或数百个文件)的近5000行代码中没有单一的方法或函数。有没有办法使用Taglist或其他插件来获得代码流的概述?我正在考虑在侧边栏中以简洁的方式显示if()中的条件,包括它们的层次结构。任何远离它的东西都会很棒。
谢谢!
答案 0 :(得分:3)
这涉及一些工作,你需要编译修改后的ctags修改版本,修改后的php规则。
答案 1 :(得分:1)
使用foldlist plugin和foldmethod-syntax
(或调整自己的foldmethod-expr
)可以很好地运作。
事实上,即使没有插件,我相信正确的折叠设置会创造奇迹。 一些建议:
set foldmethod=syntax
或(set foldmethod=expr
和set foldexpr=...
适合您的情况)set foldclose=all
隐藏所有那些讨厌的ifs 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