Spec-Zone.ru › Elisp

Вычисление

Находясь в Edebug, вы можете вычислять выражения так, как если бы Edebug не был запущен. Edebug старается оставаться незаметным при вычислении и печати выражения. Вычисление выражений, вызывающих побочные эффекты, работает как ожидается, за исключением изменений данных, которые Edebug явно сохраняет и восстанавливает. Подробности этого процесса см. в разделе Внешний контекст.

e exp RET

Вычислить выражение exp во внешнем по отношению к Edebug контексте (edebug-eval-expression). Иными словами, Edebug старается свести к минимуму свое вмешательство в процесс вычисления. Результат отображается в области эха; если же этой команде передан префикс, открывается новый буфер, в котором результат выводится в отформатированном виде.

По умолчанию эта команда отключает отладчик на время вычисления, чтобы ошибка в вычисляемом выражении не добавляла новую ошибку поверх уже существующей. Чтобы изменить это поведение, задайте пользовательскому параметру debug-allow-recursive-debug (см. Вызов отладчика при возникновении ошибки) значение, отличное от nil.

M-: exp RET

Вычислить выражение exp в контексте самого Edebug (eval-expression).

C-x C-e

Вычислить выражение перед точкой во внешнем по отношению к Edebug контексте (edebug-eval-last-sexp) и показать значение в минибуфере. Если передать нулевой префиксный аргумент (C-u 0 C-x C-e), при отображении значения длинные элементы (например, строки и списки) не сокращаются из-за edebug-print-length и edebug-print-level (см. Печать в Edebug). Любой другой префикс приведет к тому, что значение будет выведено в отформатированном виде в отдельном буфере, а не в минибуфере.

Дополнительные возможности Edebug для интерактивного вычисления списков выражений описаны в разделе Буфер списка вычислений.

Edebug поддерживает вычисление выражений, содержащих ссылки на лексически связанные символы, созданные следующими конструкциями из cl-lib.el: cl-macrolet и cl-symbol-macrolet.

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Edebug-Eval.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API