VIM:导航xdebug跟踪

时间:2011-12-06 15:30:22

标签: vim xdebug

xdebug跟踪如下所示:

1 TRACE START [2011-12-06 12:50:29]
2     0.0018     350384   -> {main}() /index.php:0
3     0.0019     350464     -> error_reporting() /index.php:4
4     0.0019     350704     -> define() /index.php:8
5     0.0021     370136     -> require_once(/forum/global.php) /index.php:43
6     0.0022     370216       -> error_reporting() /forum/global.php:13
7     0.0020     353760       -> chdir() /index.php:42
8     0.0019     350704     -> define() /index.php:9
9     0.0019     353760     -> dirname() /index.php:42

每次调用函数或include()时,第三列都会缩进另一个位置。例如,在第5行中,我们看到一个require_once(/forum/global.php),其中调用了error_reporting()和chdir()函数,然后代码流返回到原始文件(/index.php)。 p>

如何从include()ed文件中的文件行(比如/index.php中的第5行)跳转到文件的下一行(在上面的示例中为第8行) )。

我能想到的一个解决方案是重载“j”以查看它是否在空格字符上,如果是则再次运行“j”。如果有更好的解决方案,那么我很想知道它。

2 个答案:

答案 0 :(得分:2)

在您提供的文件中,您可以跳转到具有“ - >”特定位置的行你对(在第29-30栏)使用正则表达式的以下搜索感兴趣:

搜索模式:/^.\{28\}-

以下是详细信息:

  • /是搜索键
  • ^表示行开头
  • .\{28}表示28个随机字符
  • -只匹配“ - ”作为下一个(第29个)字符

输入一次此搜索后,您可以使用n(转发)和N(向后)浏览您感兴趣的行。

- 编辑 -

根据以下评论,这是另一个更接近O.P.寻找的版本:

Ex命令::exe '/^.\{'.(col(".")-1).'\}->'

这建立在前一个搜索模式的基础上,使用光标前面的列的值而不是固定值。

答案 1 :(得分:0)

并非完全相关,但我使用debugger.vim来调试PHP代码,并发现它非常宝贵。

你可以在这里编写脚本,或者在我的github上稍微修改一下版本

http://www.vim.org/scripts/script.php?script_id=1929

https://github.com/richo/richo-vim/tree/master/plugin