7

我在 VIM 中使用Taglist,但是我继承的一个特定 PHP 应用程序是用 if() 和 elseif() 和 include() 广泛编码的。每个文件(以及数十或数百个文件)的近 5000 行代码中没有一个方法或函数。有什么方法可以使用 Taglist 或其他插件来概览代码流?我正在考虑在侧边栏中以简洁的方式显示 if() 中的条件,包括它们的层次结构。任何与此相近的东西都会很棒。

谢谢!

4

2 回答 2

3

这涉及一些工作,您需要使用修改后的 php 规则编译 exuberant ctags 的修改版本。

你可能想看看这里: http ://ctags.sourceforge.net/EXTENDING.html

于 2012-02-06T22:48:11.220 回答
1

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
于 2012-02-08T19:55:22.747 回答