VIM: навигация по следам xdebug - PullRequest
1 голос
/ 06 декабря 2011

Следы 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).

Как я могу перейти от строки для файла (скажем, строка 5, которая находится в /index.php) к файлам include () ed до следующей строки файла (которая будет строкой 8 в приведенном выше примере) ).

Одним из решений, которое я мог бы придумать, было бы перегрузить «j», чтобы проверить, что он не содержит пробел, и, если это так, снова запустить «j». Если есть лучшее решение, я бы хотел узнать об этом.

Ответы [ 2 ]

2 голосов
/ 06 декабря 2011

В предоставленном вами файле вы можете перемещаться по строкам с определенной позицией "->", которая вас интересует (в столбцах 29-30), используя следующий поиск по регулярному выражению:

Шаблон поиска: /^.\{28\}-

Вот подробности:

  • / - это ключ поиска
  • ^ означает начало строки
  • .\{28} означает 28 случайных символов
  • - просто соответствует "-" как следующий (29-й) символ

После однократного ввода этого поиска вы можете перемещаться по интересующим вас строкам, используя n (вперед) и N (назад).

- редактировать -

Основываясь на комментариях ниже, вот еще одна версия, более близкая к тому, что искала О.П .:

Ex команда: :exe '/^.\{'.(col(".")-1).'\}->'

Это основывается на предыдущем шаблоне поиска, используя значение столбца прямо перед курсором вместо фиксированного значения.

0 голосов
/ 08 декабря 2011

Не совсем связано, но я использую debugger.vim для отладки PHP-кода и считаю его бесценным.

Вы можете получить скрипт здесь или слегка модифицированную версию на моем github

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

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

...