Существуют ли какие-либо инструменты, облегчающие отслеживание ошибок в блоках режима org? (Я работаю с питоном специально)
Мой текущий рабочий процесс состоит в том, чтобы скопировать код, который работает в исходный блок, и попытаться внести только минимальные изменения. Если происходят серьезные ошибки, я либо копирую его обратно в другой файл, либо путаю блок и отлаживаю полученный файл.
Есть ли какие-то инструменты, которые мне не хватает? (например, что-то вроде режима компиляции, в котором вы попадете на строку, в которой включена ошибка.)
Изменить: например, я только что нашел Cc Cv v, который вызывает буфер с расширенными ссылками noweb. К сожалению, он не включает аргументы заголовка, поэтому код из этого не может быть выполнен без предварительного импорта в интерпретатор. Точно так же, если у меня есть оператор return, который удерживает его от выполнения, а буфер не редактируется, поэтому предпринимает несколько шагов, чтобы получить работающий источник из блока python.
(org-src-debug)
. Это имеет то преимущество, что вы можете отлаживать блоки исходного кода с помощью входных аргументов.:session
заголовок в свой блок кода? например:session *my-python*
. Затем просто наблюдайте за выполнением скрипта в*my-python*
буфере в другом кадре или окне. Я предполагаю, что вы хотите что-то более сложное, чем это правильно?Ответы:
Способ 1
Добавьте
:session
заголовок к вашему исходному блоку.В этом примере использование заголовка : session будет выполнять код внутри буфера с именем
*my-python*
и отображать сообщения отладки.Способ 2
Место точки в блоке кода и редактирования блока с использованием C-c ', то есть
org-edit-special
. Этот метод позволит вам использоватьpython-mode
встроенные функции.Запустите интерпретатор python C-c C-p, который разделит окно и откроет имя буфера
*Python*
. Для переключения в буфер интерпретатора Python нажмите C-c C-z.Когда закончите, распространите ваш обновленный код в блок кода с помощью C-c 'или отмените любые изменения с помощью C-c C-k.
источник