Xdebug和VIm:在debuggerwatch窗口中展开整个数组子节点

时间:2014-09-08 16:02:35

标签: vim xdebug

我正在使用vdebug和vim来调试php脚本。

启动调试器后,我可以在调试器守寡窗口中以未收集的方式看到带有第一个子节点的数组值。

▾ $wp_filter = (array [365])
  \
   ▸ $wp_filter['pre_term_name'] = (array [2])
   |
   ▸ $wp_filter['pre_comment_author_name'] = (array [2])
   |
   ▸ $wp_filter['pre_link_name'] = (array [2])
   |
   ▸ $wp_filter['pre_link_target'] = (array [2])
   |
   ▸ $wp_filter['pre_link_rel'] = (array [2])

我有一个不同的大(365元素)数组,每个第一个数组子元素中有3个子元素

在vims调试器监视窗口中,它只显示数组中的箭头,直到第一个子节点。如果你点击它会进一步折叠以显示孩子们。

▾ $wp_filter = (array [365])
  \
   ▾ $wp_filter['pre_term_name'] = (array [2])
    \
     ▾ $wp_filter['pre_term_name'][10] = (array [2])
      \
       ▾ $wp_filter['pre_term_name'][10]['sanitize_text_field'] = (array [2])
        \
         ⬦ $wp_filter['pre_term_name'][10]['sanitize_text_field']['function'] = (string [19]) `sanitize_text_field`
         |
         ⬦ $wp_filter['pre_term_name'][10]['sanitize_text_field']['accepted_args'] = (int) 1
        /
       ▸ $wp_filter['pre_term_name'][10]['wp_filter_kses'] = (array [2])
      /
     ▸ $wp_filter['pre_term_name'][30] = (array [1])
    /
   ▸ $wp_filter['pre_comment_author_name'] = (array [2])
   |
   ▸ $wp_filter['pre_link_name'] = (array [2])
   |
   ▸ $wp_filter['pre_link_target'] = (array [2])
   |
   ▸ $wp_filter['pre_link_rel'] = (array [2])

所以有一种方法我可以一次折叠到阵列的所有数组元素的最后一级,而不是手动预测箭头。我尝试了展开命令zo。它说没有发现折叠。

1 个答案:

答案 0 :(得分:0)

我认为意味着扩展而不是崩溃,因为扩展复杂变量将显示其内容。

尝试修复使用Xdebug + Vdebug在数组中查看超过32个元素的问题。我可能偶然发现了一个解决方案。

当我在Vdebug中将max_depth设置为32时,我发现我的监视列表会自动扩展嵌套结构,就像你询问的那样。

在Vim中,运行ex命令......

let g:vdebug_features['max_depth']=32

看看是否能达到你的效果。