PHP 的 VIM:在 Taglist 中列出 if() 和 include()
我在 VIM 中使用 Taglist,但我继承了一个特定的 PHP 应用程序广泛使用 if() 和 elseif() 以及 include() 进行编码。每个文件(以及数十或数百个文件)的近 5000 行代码中没有一个方法或函数。有没有办法使用 Taglist 或其他插件来了解代码流程?我正在考虑在侧边栏中以简洁的方式显示 if() 中的条件,包括它们的层次结构。任何距离它很近的东西都会很棒。
谢谢!
I use Taglist in VIM, but one particular PHP application which I have inherited is coded with if()'s and elseif()'s and include()'s extensively. Not a single method or function in almost 5000 lines of code per file (and tens or hundreds of files). Is there any way to use Taglist or another plugin to get an overview of the code flow? I'm thinking of something along the lines of showing the conditions in the if()'s in a concise manner in the sidebar, including their hierarchy. Anything remotely close to that would be great.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这涉及到一些工作,您需要使用修改后的 php 规则来编译 exuberant ctags 的修改版本。
你可能想看看这里:
http://ctags.sourceforge.net/EXTENDING.html
this involves a little bit work, you'll need to compile a modified version of exuberant ctags with modified rules for php.
you might want to have a look over here:
http://ctags.sourceforge.net/EXTENDING.html
使用 foldlist 插件 以及
foldmethod-syntax
(或者调整你自己的foldmethod-expr)会很好地工作。事实上,即使没有插件,我相信正确的折叠设置也会创造奇迹。
一些建议:
setfoldmethod=syntax
或(setfoldmethod=expr
和setfoldexpr=...
根据您的情况)setfoldclose =all
隐藏所有那些令人讨厌的 ifsetfoldcolumn=2
或更高级别以查看嵌套级别setfoldtext=MyFoldText()
并创建一个函数来向您展示相关信息,喜欢:
Using foldlist plugin along with
foldmethod-syntax
(or tweaking your ownfoldmethod-expr
) would work nicely.In fact, even without the plugin I believe a proper fold setting would work miracles.
Some recommendations:
set foldmethod=syntax
or (set foldmethod=expr
andset foldexpr=...
for your case)set foldclose=all
to hide all those nasty ifsset foldcolumn=2
or greater to see the nesting levelset foldtext=MyFoldText()
and make a function to show you relevant information,like: